Bill Hoffman | 1 Jun 04:56 2008

Re: add_custom_command: regenerate all on modifcation?

Dave Milter wrote:
\
> 
> I look at generated by cmake makefiles, and all generated files depend on
> CMakeLists.txt

Please create a small example that shows your problem.

-Bill
Dave Milter | 1 Jun 08:52 2008
Picon

Re: add_custom_command: regenerate all on modifcation?

On 6/1/08, Bill Hoffman <bill.hoffman@...> wrote:
> Dave Milter wrote:
>  \
>
> >
> > I look at generated by cmake makefiles, and all generated files depend on
> > CMakeLists.txt
> >
>
>  Please create a small example that shows your problem.
>

I hope this mailing list accept attachments.
Look at regenerate_problem.tar.gz in attachment.
It compiles on only unix like os,  because of it uses /bin/sh.

Part of CMakeLists.txt looks like this:
------------------------------------------------------
ADD_EXECUTABLE(regenerate_problem
        main.cpp
        ${CMAKE_CURRENT_BINARY_DIR}/ui_foo.hpp
        foo.cpp
        #foo2.cpp
)
------------------------------------------------------
if build project, and after that uncomment foo2.cpp,
it calls script to regenerate ${CMAKE_CURRENT_BINARY_DIR}/ui_foo.hpp,
but rule to build ui_foo.hpp not changed, script to build ui_foo.hpp
not changed,
and ui_foo.hpp exists and uptodate, but
(Continue reading)

Pečiva Jan | 1 Jun 16:29 2008
Picon

multiple executables

Dears cmakers,

I am about to finish my "dual gui/console" behaviour for InventorTools  
utilities. Compilation of whole set of executables is perfectly  
handled by cmake, but final "installation" procedure does not work.

Can cmake handle this situation?:

1. cmake builds all the executables of the projects
    "Dual" behaviour requires .com suffix, so all *.com are placed in
    the build directories. On MSVC, it is usually at
    build/(project_name)/(debug|release)/*.com
    This works perfectly.

2. The last project makes one .exe for "dual" behaviour. It is called
    autoconsole.exe. Before using cmake, I copied autoconsole.exe to all other
    build directories to reside together with their .com and renamed them to
    the same name as .com except with .exe suffix. This worked perfectly using
    post-build script, but how to make it with cmake?

I unsuccessfully tried two options:

- to make post-build step by

add_custom_command (TARGET autoconsole
      POST_BUILD
      COMMAND ${CMAKE_COMMAND} -E copy
      ${PROJECT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/autoconsole.exe
      ${ivview_BINARY_DIR}/${CMAKE_CFG_INTDIR}/ivview.exe
      COMMENT "Copying executables..." VERBATIM)
(Continue reading)

Alan W. Irwin | 1 Jun 19:03 2008
Picon
Picon

Re: multiple executables

On 2008-06-01 16:29+0200 Peiva Jan wrote:

> install (TARGETS autoconsole
>         RUNTIME
>         DESTINATION bin
>         RENAME ivview.exe)
>
> It copies the file, but RENAME does not work (It probably works only for 
> PROGRAMS and FILES signatures). I was planning to use this command about ten 
> times to get all the required .exe.

RENAME does not appear in the documentation of the install(TARGETS ...)
signature of the install command so I think you are correct what you
attempted above should not work.  However, if you instead set the
OUTPUT_NAME property of the target using set_target_properties, I believe
you will get the result you want.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state implementation
for stellar interiors (freeeos.sf.net); PLplot scientific plotting software
package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of
Linux Links project (loll.sf.net); and the Linux Brochure Project
(lbproject.sf.net).
__________________________
(Continue reading)

Alexander Neundorf | 1 Jun 23:04 2008
Picon
Picon

Re: [PATCH] FindQt4.cmake qt4_automoc improvements

On Thursday 29 May 2008, Christian Ehrlicher wrote:
> Tanguy Krotoff schrieb:
> > On Thu, May 29, 2008 at 8:48 PM,  <clinton@...> wrote:
> > The bug that I got with QT_DEBUG/QT_NO_DEBUG not being defined is a
> > pretty hard one.
> > I simply would like other devs not to spend time on such stupid
> > issues, so how can this be prevented?
>
> We hit this problem some time ago and fixed it locally.
> FindQt4.cmake from kdelibs has a fix for this - I thought alex already
> merged this back to FindQt4 from cmake.

I try to merge partly from time to time, but the differences have become quite 
big, also because the one from cmake must be more general than the one from 
KDE (for KDE it's ok if FindQt4.cmake just supports the Qt versions we 
require, i.e. currently >= 4.3.0)
So there are some things which will stay different.

Alex
Christian Ehrlicher | 1 Jun 23:02 2008
Picon
Picon

Re: [PATCH] FindQt4.cmake qt4_automoc improvements

Alexander Neundorf schrieb:
> On Thursday 29 May 2008, Christian Ehrlicher wrote:
>> Tanguy Krotoff schrieb:
>>> On Thu, May 29, 2008 at 8:48 PM,  <clinton@...> wrote:
>>> The bug that I got with QT_DEBUG/QT_NO_DEBUG not being defined is a
>>> pretty hard one.
>>> I simply would like other devs not to spend time on such stupid
>>> issues, so how can this be prevented?
>> We hit this problem some time ago and fixed it locally.
>> FindQt4.cmake from kdelibs has a fix for this - I thought alex already
>> merged this back to FindQt4 from cmake.
> 
> I try to merge partly from time to time, but the differences have become quite 
> big, also because the one from cmake must be more general than the one from 
> KDE (for KDE it's ok if FindQt4.cmake just supports the Qt versions we 
> require, i.e. currently >= 4.3.0)
> So there are some things which will stay different.
> 
np, but the ndebug thing should be easy to merge, or?

Christian
Alexander Neundorf | 1 Jun 23:09 2008
Picon
Picon

Re: CMakeLists for Hans-J. Boehm garbage collector

On Thursday 29 May 2008, David Genest wrote:
> Hi,
>
> I am converting a project from autotools to CMake which has a dependency on
> the the Hans B. GC library. I was wondering what would be the best way to
> go about converting the GC library. This library already comes with a set
> of makefiles for different platforms (NT_MAKEFILE, BCC_MAKEFILE, etc, so I
> was not sure about creating CMakeLists.txt.

If you just want to use the GC, you don't have to build it with cmake, having 
a "Finder" for cmake is good enough.

> If I keep the existing makefile build framework, would I have to code
> platform specific sections in my projects CMakeLists.txt in order to use
> the correct makefile depending on the platform ? I suppose I would have to
> call explicitely the correct make (nmake) for the platform.

...but if you need to integrate the GC build into your projects build, 
converting it to cmake might make sense.
If you don't convert it, you have to use something like add_custom_target() to 
build GC, and then you have to care to call the right make with the right 
makefiles depending on the platform.

If you convert GC to cmake, cmake takes care of a lot of things, but you still 
may have to care e.g. for different compile flags necessary for different 
platforms or different compiler versions.

> Or better, I was wondering if there was a set of CMakeLists.txt for the
> Hans B. garbage collector.
>
(Continue reading)

Alexander Neundorf | 1 Jun 23:15 2008
Picon
Picon

Re: Minor problem with cmake-based chicken build on cygwin

On Saturday 31 May 2008, Nathan Thern wrote:
> Hi all-
> I just built chicken-3.2.0 on cygwin. The build went just fine, but the
> install put the runtime dlls (cygchicken-0.dll and cyguchicken-0.dll) in
> /usr/lib rather than /usr/bin. The installation did not work until I moved
> the dlls to /usr/bin.
>
> A quick inspection of the makefiles revealed that DLLSINPATH is not set
> in Makefile.cygwin (whereas it is in the mingw & msvc makefiles).
>
> The obvious fix is to define DLLSINPATH in the make arguments, but since
> the build is broken unless that is done, it looks like a bug to me. Perhaps
> this is a cmake bug, or a bug in the chicken source?

I know basically nothing about chicken, but usually cmake doesn't generate 
files named "Makefile.cygwin". Where do they come from ?
To install libraries correctly, you have to use 
install(TARGETS <lib1> <lib2> RUNTIME DESTINATION <bindir>
                              ARCHIVE DESTINATION <libbir>
                              LIBRARY DESTINATION <libdir> )

This will put everything in the correct place. Check if this is done in the 
cmake files.

Alex
PCJohn | 1 Jun 23:17 2008
Picon

Re: multiple executables

 > [...] if you instead set the OUTPUT_NAME property of the target
 > using set_target_properties, I believe you will get the result
 > you want.

I guess, that would be the option if I would need just one
executable. But I need ten executables - each one of different name.
Simlinks, etc. are not an option because this is used on Windows only.

It would be nice to get ${CMAKE_CFG_INTDIR} working. Investigating...
Finally, found a bug!

Following cmake code

add_custom_command (TARGET autoconsole
      POST_BUILD
      COMMAND ${CMAKE_COMMAND} -E copy
      ${PROJECT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/autoconsole.exe
      ${ivview_BINARY_DIR}/${CMAKE_CFG_INTDIR}/ivview.exe
      COMMENT "Copying executables..." VERBATIM)

produces following command as post-build step in Visual Studio:

C:\usr\pkg\cmake-2.6.0-win32-x86\bin\cmake.exe -E copy 
C:/Users/John/Desktop/ivTools.cmake.Win/build/winAutoConsole/"$"(OutDir)/autoconsole.exe 
C:/Users/John/Desktop/ivTools.cmake.Win/build/ivview/"$"(OutDir)/ivview.exe

Notice "$". The "" avoids correct expansion of $(OutDir) by Visual 
Studio Express 2008. If I manually remove "", everything works like a 
charm. I am using cmake 2.6.0. Not sure about 2.4...

(Continue reading)

Torsten Grote | 1 Jun 23:48 2008
Picon
Picon

CPack NSIS no branding image

Hi all,

it seems impossible to build a NSIS installer using CMake. I tried 
v2.6.0 and the latest CVS version.
After a "make package" I get a CPack Error. The log file NSISOutput.log 
gives me:

[snip]
!insertmacro: MUI_LANGUAGE

Error: no branding image found in chosen UI!
Error in macro MUI_HEADERIMAGE_INIT on macroline 27
Error in macro MUI_GUIINIT on macroline 3
Error in macro MUI_FUNCTION_GUIINIT on macroline 4
Error in macro MUI_INSERT on macroline 11
Error in macro MUI_LANGUAGE on macroline 7
Error in script 
"/home/xyz/tmp/cmake/build/_CPack_Packages/win32/NSIS/project.nsi" on 
line 438 -- aborting creation process
[/snip]

I am on a 64bit GNU/Linux, crosscompiling my project for Windows with 
mingw32. I managed to reproduce the error with a minimal(! enough to 
trigger the error) test project. The CMakeLists.txt file follows.

ADD_EXECUTABLE(hello wintest.c)

INCLUDE(InstallRequiredSystemLibraries)

SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "My funky project")
(Continue reading)


Gmane