Re: [CMake] cmake 2.6.1 RC 8
Quoting Bill Hoffman <[EMAIL PROTECTED]>: Reggie Burnett wrote: Any plans of a wix generator for cpack? None that I know of. What is wix? It's an open source NSIS-like installer generator by Microsoft http://en.wikipedia.org/wiki/WiX http://wix.sourceforge.net/ -- Pau Garcia i Quiles http://www.elpauer.org (Due to my workload, I may need 10 days to answer) ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Three short questions...
On Tue, Jul 15, 2008 at 11:09 AM, Hauke Heibel <[EMAIL PROTECTED]> wrote: > And the last question is, if it is possible to tell the FindQt.cmake >> script to give me the plain libraries without the full path of them being >> prepended (I am talking about the content of the QT_LIBRARIES variable). I >> would rather like to use LINK_DIRECTORIES and TARGET_LINK_LIBRARIES >> separately, i.e. I would prefer QtGuid4.lib over C:\Qt\lib\QtGuid4.lib. > > > It should be possible to do this with STRING(REGEX REPLACE... ) if there is > no better way. I'm curious why you would need to do this though. The use > of TARGET_LINK_LIBRARIES() with full paths is highly desired over > LINK_LIBRARIES() and TARGET_LINK_LIBRARIES() with a relative library > filename. > > Ok, I see what you mean though I am wondering why in general not all CMake > Find modules follow this paradigm. For instance all of my ITK libraries seem > to be set via TARGET_LINK_LIBRARIES() without the path and the path (here > luckily including the $(OutDir), which I just realized) seems to be set via > LINK_DIRECTORIES(). Maybe it is done that way to support the multi-target > MSVC generator because LINK_DIRECTORIES() does not (yet?) support the > CONFIGURATIONS option. > This is probably a good theory as to why it's done this way. It's one of the downsides of CMake that using it for MSVC is not quite as straightforward as using it on other compilers. To really use CMake properly with VS generated libraries (which have the release vs. release and debug vs. debug linking requirement) you either have to add extra calls to FIND_LIBRARY() to find the Debug libraries with an appended "d" (most CMake find modules don't do this on their own) or use a hack like this: FIND_LIBRARY(MYMATH_LIBRARY mymath) ADD_EXECUTABLE(foo foo.cc) IF(MSVC) STRING(REPLACE ".lib" "d.lib" MYMATH_DEBUG_LIBRARY ${MYMATH_LIBRARY}) TARGET_LINK_LIBRARIES(foo optimized ${MYMATH_LIBRARY} debug ${MYMATH_DEBUG_LIBRARY}) ELSE() TARGET_LINK_LIBRARIES(foo ${MYMATH_LIBRARY}) ENDIF() -- Philip Lowman ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] trouble setting library output directoy
# -- Setup output Directories - SET (LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/Bin CACHE PATH "Single Directory for all Libraries" ) This will effect all targets. -- Mike Jackson Senior Research Engineer Innovative Management & Technology Services On Jul 15, 2008, at 8:41 PM, Christopher Harvey wrote: Hi, I've got a root directory, say / and there is a CMakeLists.txt in it, that looks like this: CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT(GlewMingW) #SET(CMAKE_VERBOSE_MAKEFILE TRUE) INCLUDE_DIRECTORIES(include) ADD_LIBRARY(glew STATIC src/glew.c) #ADD_EXECUTABLE(visualinfo src/visualinfo.c) #ADD_EXECUTABLE(glewinfo src/glewinfo.c) SET_TARGET_PROPERTIES(glew PROPERTIES COMPILE_FLAGS -O3 LIBRARY_OUTPUT_DIRECTORY lib ) #SET_TARGET_PROPERTIES(visualinfo PROPERTIES COMPILE_FLAGS -O3) #SET_TARGET_PROPERTIES(glewinfo PROPERTIES COMPILE_FLAGS -O3) #TARGET_LINK_LIBRARIES(glewinfo -glew opengl32 -mwindows) there is also a /lib directory with nothing in it. The problem is then when I run cmake ./ it says that there are no problems, and it compiles with ming32-make as well. The only thing is that libglew.a appears in / rather than the /lib directory. I've googled around but wasn't able to find an example that did what I wanted it to do. Thanks for reading, Chris. ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] cmake 2.6.1 RC 8
Reggie Burnett wrote: Any plans of a wix generator for cpack? None that I know of. What is wix? -Bill ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
[CMake] trouble setting library output directoy
Hi, I've got a root directory, say / and there is a CMakeLists.txt in it, that looks like this: CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT(GlewMingW) #SET(CMAKE_VERBOSE_MAKEFILE TRUE) INCLUDE_DIRECTORIES(include) ADD_LIBRARY(glew STATIC src/glew.c) #ADD_EXECUTABLE(visualinfo src/visualinfo.c) #ADD_EXECUTABLE(glewinfo src/glewinfo.c) SET_TARGET_PROPERTIES(glew PROPERTIES COMPILE_FLAGS -O3 LIBRARY_OUTPUT_DIRECTORY lib ) #SET_TARGET_PROPERTIES(visualinfo PROPERTIES COMPILE_FLAGS -O3) #SET_TARGET_PROPERTIES(glewinfo PROPERTIES COMPILE_FLAGS -O3) #TARGET_LINK_LIBRARIES(glewinfo -glew opengl32 -mwindows) there is also a /lib directory with nothing in it. The problem is then when I run cmake ./ it says that there are no problems, and it compiles with ming32-make as well. The only thing is that libglew.a appears in / rather than the /lib directory. I've googled around but wasn't able to find an example that did what I wanted it to do. Thanks for reading, Chris. ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] how to make OpenGTL rpm?
Eric Noulard wrote: 2008/7/15 Matthew Woehlke <[EMAIL PROTECTED]>: I'm trying to build an rpm of OpenGTL, with no success. I added 'set(CPACK_GENERATOR "TGZ;RPM")' and 'include(CPack)' to the CMakeLists.txt, but when I try to build the RPM, it wants to write to /usr (ah, shouldn't rpm building NOT need to install first?!), and if I run it as root, it installs but yields an empty rpm. I don't know OpenGTL but it must use "absolute install path". Try to add SET(CPACK_SET_DESTDIR "ON" to the CMakeLists.txt and retry. ...no change that I can see. Ah, should I be setting CMAKE_INSTALL_PREFIX to anything special? -- Matthew I don't see what C++ has to do with keeping people from shooting themselves in the foot. C++ will happily load the gun, offer you a drink to steady your nerves, and help you aim. -- Peter da Silva (from cluefire.net) ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] CMake support for Python
2008/7/10 Mathieu Malaterre <[EMAIL PROTECTED]>: > You are missing the enable_testing() + include(CTest) thingy Thanks Mathieu, I have got the test and CDash submission working fine. However, I can't seem to get the ADD_PYTHON_COMPILEALL_TEST call working It needs a copy of compileall.py to work but as I understand, there is already compileall.py ship with python, should that file be duplicated in each project that require the compileall capability within CMake ? 8<--8<--8<--8<--8<--8<--8<--8<-- Start processing tests Test project /Users/nicholas/projects/pi_svn/programming/python/UnitTesting/build 1/ 2 Testing COMPILE_ALL-/Users/nicholas/pr***Failed 2/ 2 Testing PYTHON-TEST Passed 50% tests passed, 1 tests failed out of 2 The following tests FAILED: 1 - COMPILE_ALL-/Users/nicholas/projects/pi_svn/programming/python/UnitTesting/src (Failed) Errors while running CTest make: *** [test] Error 8 8<--8<--8<--8<--8<--8<--8<--8<-- 8<--8<--8<--8<--8<--8<--8<--8<-- CMAKE_MINIMUM_REQUIRED(VERSION 2.6) ENABLE_TESTING() PROJECT ( unittest ) INCLUDE ( CTest ) INCLUDE ( FindPythonInterp ) INCLUDE ( UsePythonTest ) # Require compileall.py file to be present, not good ADD_PYTHON_COMPILEALL_TEST ( ${CMAKE_SOURCE_DIR}/src ) # ADD_PYTHON_COMPILEALL_TEST ( ${CMAKE_SOURCE_DIR}/test ) SET_SOURCE_FILES_PROPERTIES(test/GeometryTestSuite.py PROPERTIES PYTHONPATH ${CMAKE_SOURCE_DIR}/src) ADD_PYTHON_TEST(PYTHON-TEST test/GeometryTestSuite.py) 8<--8<--8<--8<--8<--8<--8<--8<-- ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Sending Swig options to compiler
Perfect! Thanks Alan. Gerrick On 7/15/08 4:19 PM, "Alan W. Irwin" <[EMAIL PROTECTED]> wrote: > On 2008-07-15 15:49-0500 Gerrick Bivins wrote: > >> Hello, >> I�m trying to add an extra option to the swig compile line (-package >> ) while generating java wrappers for my project. >> I�m running into a problem when using: >> SET(PACKAGE_NAME test) >> SET_SOURCE_FILES_PROPERTIES( ${INTERFACE_FILES} PROPERTIES CPLUSPLUS ON ) >> SET( CMAKE_SWIG_FLAGS "-package ${PACKAGE_NAME}" ) > > Try dropping the quotes, i.e., > > SET(CMAKE_SWIG_FLAGS -package ${PACKAGE_NAME}) > > That form works for the PLplot project. > > 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). > __ > > Linux-powered Science > __ > ___ > > CMake mailing list > > CMake@cmake.org > > http://www.cmake.org/mailman/listinfo/cmake ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Sending Swig options to compiler
On 2008-07-15 15:49-0500 Gerrick Bivins wrote: Hello, I�m trying to add an extra option to the swig compile line (-package ) while generating java wrappers for my project. I�m running into a problem when using: SET(PACKAGE_NAME test) SET_SOURCE_FILES_PROPERTIES( ${INTERFACE_FILES} PROPERTIES CPLUSPLUS ON ) SET( CMAKE_SWIG_FLAGS "-package ${PACKAGE_NAME}" ) Try dropping the quotes, i.e., SET(CMAKE_SWIG_FLAGS -package ${PACKAGE_NAME}) That form works for the PLplot project. 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). __ Linux-powered Science _ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
[CMake] Sending Swig options to compiler
Hello, I¹m trying to add an extra option to the swig compile line (-package ) while generating java wrappers for my project. I¹m running into a problem when using: SET(PACKAGE_NAME test) SET_SOURCE_FILES_PROPERTIES( ${INTERFACE_FILES} PROPERTIES CPLUSPLUS ON ) SET( CMAKE_SWIG_FLAGS "-package ${PACKAGE_NAME}" ) the Makefile contains an erroneous ³\² after the package option which causes the compile to fail.: [ 21%] Swig source cd /Users/gbivins/work/APIs/test/build-mac/src/java && /opt/local/bin/swig -java -package\ test -outdir /Users/gbivins/work/APIs/test/build-mac/lib/java/myTest -c++ -I/Users/gbivins/work/APIs/installs/include -I/Users/gbivins/work/APIs/test/include -I/System/Library/Frameworks/JavaVM.framework/Headers -o /Users/gbivins/work/APIs/osgswig-new/build-mac/src/java/testJAVA_wrap.cxx /Users/gbivins/work/APIs/test/src/java//test.i swig error : Unrecognized option -package test Use 'swig -help' for available options. make[2]: *** [src/java/testJAVA_wrap.cxx] Error 1 make[1]: *** [src/java/CMakeFiles/testJava.dir/all] Error 2 make: *** [all] Error 2 Manually removing the slash from the build.make file corrects the build problem. I¹ve also tried using: SET_SOURCE_FILES_PROPERTIES( ${INTERFACE_FILES} PROPERTIES SWIG_FLAGS"-package ${PACKAGE_NAME}") which yeilds the same results. I¹m on Mac OSX 10.5.4 using Cmake 2.6.0. Gerrick ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] how to make OpenGTL rpm?
2008/7/15 Matthew Woehlke <[EMAIL PROTECTED]>: > I'm trying to build an rpm of OpenGTL, with no success. I added > 'set(CPACK_GENERATOR "TGZ;RPM")' and 'include(CPack)' to the CMakeLists.txt, > but when I try to build the RPM, it wants to write to /usr (ah, shouldn't > rpm building NOT need to install first?!), and if I run it as root, it > installs but yields an empty rpm. I don't know OpenGTL but it must use "absolute install path". Try to add SET(CPACK_SET_DESTDIR "ON" to the CMakeLists.txt and retry. -- Erk ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Help with Execute_Process
Alan W. Irwin wrote: On 2008-07-15 13:10+0200 Carminati Federico wrote: Hello, I would like to execute the following command Execute_Process( COMMAND svn info | grep \"Last Changed Rev:\" | cut -d: -f2 OUTPUT_VARIABLE _res) But concatenation with pipes does not work. Any hint? Best regards, I haven't tried this myself, but the execute_process documentation says: "Runs the given sequence of one or more commands with the standard output of each process piped to the standard input of the next. A single standard error pipe is used for all processes." So I think COMMAND svn info COMMAND grep \"Last Changed Rev:\" COMMAND cut -d: -f2 should do what you want. That should work, but it would be better to just get the output of svn info into a cmake string and process it in CMake directly. That way your project will not depend on grep and cut being on the system. -Bill -- Bill Hoffman Kitware, Inc. 28 Corporate Drive Clifton Park, NY 12065 [EMAIL PROTECTED] http://www.kitware.com 518-371-3971 (phone and fax) ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Help with Execute_Process
On 2008-07-15 13:10+0200 Carminati Federico wrote: Hello, I would like to execute the following command Execute_Process( COMMAND svn info | grep \"Last Changed Rev:\" | cut -d: -f2 OUTPUT_VARIABLE _res) But concatenation with pipes does not work. Any hint? Best regards, I haven't tried this myself, but the execute_process documentation says: "Runs the given sequence of one or more commands with the standard output of each process piped to the standard input of the next. A single standard error pipe is used for all processes." So I think COMMAND svn info COMMAND grep \"Last Changed Rev:\" COMMAND cut -d: -f2 should do what 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). __ Linux-powered Science __ ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
[CMake] how to make OpenGTL rpm?
I'm trying to build an rpm of OpenGTL, with no success. I added 'set(CPACK_GENERATOR "TGZ;RPM")' and 'include(CPack)' to the CMakeLists.txt, but when I try to build the RPM, it wants to write to /usr (ah, shouldn't rpm building NOT need to install first?!), and if I run it as root, it installs but yields an empty rpm. Please help me figure out why it isn't working! OpenGTL: http://opengtl.org/Download.html -- Matthew I don't see what C++ has to do with keeping people from shooting themselves in the foot. C++ will happily load the gun, offer you a drink to steady your nerves, and help you aim. -- Peter da Silva (from cluefire.net) ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
[CMake] CTest, CVS and ssh keys
Dear ctest (and cmake) users, I have set up a CTest script like the one used in http://www.cmake.org/Wiki/CMake_Scripting_Of_CTest , along with an ssh-key. I read this: http://www.cmake.org/pipermail/cmake/2006-July/010103.html and I tried some of what was said but when I run the CTest script it hangs: -- Check for working C compiler: cl -- Check for working C compiler: cl -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: cl -- Check for working CXX compiler: cl -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Found wxWidgets: TRUE -- Configuring done -- Generating done -- Build files have been written to: D:/Programming/Build/Test/NIREP Site: karachi Build name: Win32-XP-vs8-Debug Create new tag: 20080715-1754 - Continuous Start processing tests Updating the repository Updating the repository: D:/Programming/Source/Test/NIREP Use CVS repository type I am using a windows machine and I believe I need to specify the location of the private ssh key in the CTest script but I am not sure how to do that. This is the CTest script I am using: SET (CTEST_SOURCE_DIRECTORY "D:/Programming/Source/Test/NIREP") SET (CTEST_BINARY_DIRECTORY "D:/Programming/Build/Test/NIREP") SET (CTEST_CVS_COMMAND "C:/Program Files/TortoiseCVS/cvs.exe") SET (CTEST_CVS_CHECKOUT "${CTEST_CVS_COMMAND} -d:ssh:${CVSLOCATION}:/home/research/cvsroot co -d\"${CTEST_SOURCE_DIRECTORY}\" NIREP" ) # which ctest command to use for running the dashboard SET (CTEST_COMMAND "D:/Program Files/CMake 2.6/bin/ctest.exe -D Continuous" ) # what cmake command to use for configuring this dashboard SET (CTEST_CMAKE_COMMAND "D:/Program Files/CMake 2.6/bin/cmake.exe" ) SET (CTEST_CONTINUOUS_DURATION 600) SET (CTEST_CONTINUOUS_MINIMUM_INTERVAL 10) SET (CTEST_START_WITH_EMPTY_BINARY_DIRECTORY_ONCE 1) # The values in this section are optional you can either # have them or leave them commented out # should ctest wipe the binary tree before running SET (CTEST_START_WITH_EMPTY_BINARY_DIRECTORY FALSE) # this is the initial cache to use for the binary tree, be careful to escape # any quotes inside of this string if you use it SET (CTEST_INITIAL_CACHE " SITE:STRING=karachi BUILDNAME:STRING=Win32-XP-vs8-Debug CMAKE_GENERATOR:INTERNAL=Visual Studio 8 2005 CTEST_BUILD_CONFIGURATION:STRING=Debug BUILD_SHARED_LIBS:BOOL=OFF ITK_DIR:STRING=D:/Develop/binary/itk VTK_DIR:STRING=D:/Develop/binary/vtk CVSCOMMAND:FILEPATH=C:/Program Files/TortoiseCVS/cvs.exe CVS_UPDATE_OPTIONS:STRING=-d -A -P ") # set any extra environment variables to use during the execution of the script here: SET( CTEST_ENVIRONMENT "CVS_RSH=ssh" ) Thank you for any help or hints. This message was sent using IMP, the Internet Messaging Program. ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
[CMake] Error removing temporary files with CMake on VS2003.Net, WinXP
I am using CMake 2.4.8 on WinXP generating VS2003.Net project files. During cmake time (using the CMakeSetup.exe program) I will get errors that basically say that cmake could not remove temporary files due to permissions. This leads to all sorts of other problems after cmake is run. The Error is: CMakeError: Remove failed on file: C:/Workspace/expat/vs2003/ CMakeFiles/CMakeTmp/debug/cmTryCompile.Exec.exe: System Error: Permission Denied Has any one else ever seen this? I think the way to reproduce this was to run "configure" from within CMakeSetup.exe. Delete the Cache and then configure again. Thanks -- Mike Jackson Senior Research Engineer Innovative Management & Technology Services ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Using try_compile before project() command
On Tuesday 15 July 2008 20:28:27 Yuri Timenkov wrote: > On Tuesday 15 July 2008 20:01:52 Bill Hoffman wrote: > > Carminati Federico wrote: > > > Hello Yuri, > > > I posted a similar question some time ago. There seems to be no way > > > to chose the compiler within the CMakeList.txt, because you can do very > > > little before the Project command, and afterwards it is too late. > > > Anybody can help here? best, regards, > > > > That is a very different question, and no, you can not change the > > compiler from within a CMakeLists.txt file. It must be picked with CC > > or CXX environment variables before running CMake. > > Yes, I just want to tune build environment but allow user to change it > later. KDE, for example, overrides ones later by specifying COMPILE_FLAGS > variables in CMake scripts without CACHE option. But such usage seems a bit > tricky for me, because user doesn't know which flags will be used for build > (or it's hard to determine place where particular flag came from, when you > build with VERBOSE=1). > > Overriding CMake defaults seems most clear way, because user will see > global settings in GUI and target-specific or source files-specific flags > at the right place in CMakeLists.txt. > > > > On 15 Jul 2008, at 15:56, Yuri Timenkov wrote: > > >> I want to tune initial compile and linker flags to put into cache. > > >> in main CMakeLists.txt: > > >> > > >> # Override default Compiler flags > > >> set(CMAKE_USER_MAKE_RULES_OVERRIDE MyCompilerFlags) > > >> project(MyProject) > > >> > > >> in MyCompilerFlags.cmake: > > >> > > >> check_cxx_linker_flag("-Wl,--warn-unresolved-symbols" > > >> HAVE_LD_WARN_UNRESOLVED_SYMBOLS) > > >> > > >> if(HAVE_LD_WARN_UNRESOLVED_SYMBOLS) > > >> set(CMAKE_SHARED_LINKER_FLAGS_INIT > > >> "${CMAKE_SHARED_LINKER_FLAGS_INIT} -Wl,--warn-unresolved-symbols") > > >> endif(HAVE_LD_WARN_UNRESOLVED_SYMBOLS) > > >> > > >> This works fine for CMake 2.4: > > >> -- Performing Test -Wl,--warn-unresolved-symbols > > >> -- Performing Test -Wl,--warn-unresolved-symbols - Success > > >> -- Performing Test -Wl,--no-undefined > > >> -- Performing Test -Wl,--no-undefined - Success > > >> -- Check for working C compiler: /usr/bin/gcc32 > > >> -- Check for working C compiler: /usr/bin/gcc32 -- works > > >> ... > > >> > > >> But for CMake 2.6 this code fails with error: > > >> -- The C compiler identification is GNU > > >> -- The CXX compiler identification is GNU > > >> -- Performing Test -Wl,--warn-unresolved-symbols > > >> CMake Error: Unknown extension ".cxx" for file > > >> "/vz/build/test/CMakeFiles/CMakeTmp/src.cxx". TRY_COMPILE only works > > >> for enabled languages. > > >> Currently enabled languages are: C CXX > > >> See PROJECT command for help enabling other languages. > > >> -- Performing Test -Wl,--warn-unresolved-symbols - Failed > > >> -- Performing Test -Wl,--no-undefined > > >> CMake Error: Unknown extension ".cxx" for file > > >> "/vz/build/test/CMakeFiles/CMakeTmp/src.cxx". TRY_COMPILE only works > > >> for enabled languages. > > >> Currently enabled languages are: C CXX > > >> See PROJECT command for help enabling other languages. > > >> -- Performing Test -Wl,--no-undefined - Failed > > >> -- Check for working C compiler: /usr/bin/gcc32 > > >> -- Check for working C compiler: /usr/bin/gcc32 -- works > > >> -- Detecting C compiler ABI info > > >> -- Detecting C compiler ABI info - done > > >> ... > > >> > > >> where check_cxx_linker_flag macro looks line check_cxx_compiler_flag: > > >> > > >> file(WRITE > > >> "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx" "int > > >> main() { return 0;}\n") > > >> message(STATUS "Performing Test ${_FLAG}") > > >> try_compile(${_RESULT} > > >> ${CMAKE_BINARY_DIR} > > >> "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx" > > >> CMAKE_FLAGS -DCMAKE_EXE_LINKER_FLAGS="${_FLAG}" > > >> OUTPUT_VARIABLE OUTPUT > > >> ) > > >> > > >> Any suggestions? > > > > Looks like a bug. Please file a bug report with a small example that > > is easy to reproduce. > > I'll try to figure out the problem. I filed an issue: http://public.kitware.com/Bug/view.php?id=7340 > > > Thanks. > > > > -Bill > > P.S. Did you think about "Best practices" category on wiki? Many people ask > similar questions on list, and some of them are kind of "is it moral in > CMake?" Because there is a lot of such questions, FAQ will be too long. > > ___ > CMake mailing list > CMake@cmake.org > http://www.cmake.org/mailman/listinfo/cmake ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
[CMake] CMAKE_CXX_COMPILER and the cache
Hi people, I'm trying to understand a user report which says that load_cache ignores CMAKE_CXX_COMPILER (and I need it to load it!!) While playing around with this unfortunate fact, it became apparent that this particular variable is not read from the cache at all (not even from the current cache). I can tell because I can read in the current CMakeCache.txt that in fact it contains the value which should have been loaded from the saved cache, yet a MESSAGE commands reveals that this cached value is not the same as the in-memory value of the variable. Is that so?? is this a memory-only variable whose cache value is never read in (thus can end up being completely incoherent, as in my case) ? I know a user can set the enviroment variable CXX in order to specify the compiler, but, are there other magical variables like this I should know about, that is, which not being internal nor static nor excluded are nevertheless not read in via load_cache? And a related question: can a user pass a sort of "uninitialized" value via the -D command line switch? I am using cmake in an automated context where the call cmake is done by a script. If I use someting like this: cmake -DCMAKE_CXX_COMPILER=${USER_CXX_COMPILER} it won't work when the intention is NOT to specify that (the usual case), unless a value of NOTFOUND or "" is interpreted as such. TIA Fernando Cacciola ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Using try_compile before project() command
On Tuesday 15 July 2008 20:01:52 Bill Hoffman wrote: > Carminati Federico wrote: > > Hello Yuri, > > I posted a similar question some time ago. There seems to be no way to > > chose the compiler within the CMakeList.txt, because you can do very > > little before the Project command, and afterwards it is too late. > > Anybody can help here? best, regards, > > That is a very different question, and no, you can not change the > compiler from within a CMakeLists.txt file. It must be picked with CC > or CXX environment variables before running CMake. Yes, I just want to tune build environment but allow user to change it later. KDE, for example, overrides ones later by specifying COMPILE_FLAGS variables in CMake scripts without CACHE option. But such usage seems a bit tricky for me, because user doesn't know which flags will be used for build (or it's hard to determine place where particular flag came from, when you build with VERBOSE=1). Overriding CMake defaults seems most clear way, because user will see global settings in GUI and target-specific or source files-specific flags at the right place in CMakeLists.txt. > > > On 15 Jul 2008, at 15:56, Yuri Timenkov wrote: > >> I want to tune initial compile and linker flags to put into cache. > >> in main CMakeLists.txt: > >> > >> # Override default Compiler flags > >> set(CMAKE_USER_MAKE_RULES_OVERRIDE MyCompilerFlags) > >> project(MyProject) > >> > >> in MyCompilerFlags.cmake: > >> > >> check_cxx_linker_flag("-Wl,--warn-unresolved-symbols" > >> HAVE_LD_WARN_UNRESOLVED_SYMBOLS) > >> > >> if(HAVE_LD_WARN_UNRESOLVED_SYMBOLS) > >> set(CMAKE_SHARED_LINKER_FLAGS_INIT > >> "${CMAKE_SHARED_LINKER_FLAGS_INIT} -Wl,--warn-unresolved-symbols") > >> endif(HAVE_LD_WARN_UNRESOLVED_SYMBOLS) > >> > >> This works fine for CMake 2.4: > >> -- Performing Test -Wl,--warn-unresolved-symbols > >> -- Performing Test -Wl,--warn-unresolved-symbols - Success > >> -- Performing Test -Wl,--no-undefined > >> -- Performing Test -Wl,--no-undefined - Success > >> -- Check for working C compiler: /usr/bin/gcc32 > >> -- Check for working C compiler: /usr/bin/gcc32 -- works > >> ... > >> > >> But for CMake 2.6 this code fails with error: > >> -- The C compiler identification is GNU > >> -- The CXX compiler identification is GNU > >> -- Performing Test -Wl,--warn-unresolved-symbols > >> CMake Error: Unknown extension ".cxx" for file > >> "/vz/build/test/CMakeFiles/CMakeTmp/src.cxx". TRY_COMPILE only works > >> for enabled languages. > >> Currently enabled languages are: C CXX > >> See PROJECT command for help enabling other languages. > >> -- Performing Test -Wl,--warn-unresolved-symbols - Failed > >> -- Performing Test -Wl,--no-undefined > >> CMake Error: Unknown extension ".cxx" for file > >> "/vz/build/test/CMakeFiles/CMakeTmp/src.cxx". TRY_COMPILE only works > >> for enabled languages. > >> Currently enabled languages are: C CXX > >> See PROJECT command for help enabling other languages. > >> -- Performing Test -Wl,--no-undefined - Failed > >> -- Check for working C compiler: /usr/bin/gcc32 > >> -- Check for working C compiler: /usr/bin/gcc32 -- works > >> -- Detecting C compiler ABI info > >> -- Detecting C compiler ABI info - done > >> ... > >> > >> where check_cxx_linker_flag macro looks line check_cxx_compiler_flag: > >> > >> file(WRITE > >> "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx" "int > >> main() { return 0;}\n") > >> message(STATUS "Performing Test ${_FLAG}") > >> try_compile(${_RESULT} > >> ${CMAKE_BINARY_DIR} > >> "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx" > >> CMAKE_FLAGS -DCMAKE_EXE_LINKER_FLAGS="${_FLAG}" > >> OUTPUT_VARIABLE OUTPUT > >> ) > >> > >> Any suggestions? > > Looks like a bug. Please file a bug report with a small example that > is easy to reproduce. I'll try to figure out the problem. > > Thanks. > > -Bill P.S. Did you think about "Best practices" category on wiki? Many people ask similar questions on list, and some of them are kind of "is it moral in CMake?" Because there is a lot of such questions, FAQ will be too long. ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Using try_compile before project() command
Carminati Federico wrote: Any hope to have this changed in a future release? Best regards, No, it really is out of the work flow of CMake. First you find the working compiler and test it. The CMakeLists.txt files should never force a compiler choice. They should be compiler agnostic as much as possible so they remain portable. -Bill ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Using try_compile before project() command
Carminati Federico wrote: Hello Yuri, I posted a similar question some time ago. There seems to be no way to chose the compiler within the CMakeList.txt, because you can do very little before the Project command, and afterwards it is too late. Anybody can help here? best, regards, That is a very different question, and no, you can not change the compiler from within a CMakeLists.txt file. It must be picked with CC or CXX environment variables before running CMake. On 15 Jul 2008, at 15:56, Yuri Timenkov wrote: I want to tune initial compile and linker flags to put into cache. in main CMakeLists.txt: # Override default Compiler flags set(CMAKE_USER_MAKE_RULES_OVERRIDE MyCompilerFlags) project(MyProject) in MyCompilerFlags.cmake: check_cxx_linker_flag("-Wl,--warn-unresolved-symbols" HAVE_LD_WARN_UNRESOLVED_SYMBOLS) if(HAVE_LD_WARN_UNRESOLVED_SYMBOLS) set(CMAKE_SHARED_LINKER_FLAGS_INIT "${CMAKE_SHARED_LINKER_FLAGS_INIT} -Wl,--warn-unresolved-symbols") endif(HAVE_LD_WARN_UNRESOLVED_SYMBOLS) This works fine for CMake 2.4: -- Performing Test -Wl,--warn-unresolved-symbols -- Performing Test -Wl,--warn-unresolved-symbols - Success -- Performing Test -Wl,--no-undefined -- Performing Test -Wl,--no-undefined - Success -- Check for working C compiler: /usr/bin/gcc32 -- Check for working C compiler: /usr/bin/gcc32 -- works ... But for CMake 2.6 this code fails with error: -- The C compiler identification is GNU -- The CXX compiler identification is GNU -- Performing Test -Wl,--warn-unresolved-symbols CMake Error: Unknown extension ".cxx" for file "/vz/build/test/CMakeFiles/CMakeTmp/src.cxx". TRY_COMPILE only works for enabled languages. Currently enabled languages are: C CXX See PROJECT command for help enabling other languages. -- Performing Test -Wl,--warn-unresolved-symbols - Failed -- Performing Test -Wl,--no-undefined CMake Error: Unknown extension ".cxx" for file "/vz/build/test/CMakeFiles/CMakeTmp/src.cxx". TRY_COMPILE only works for enabled languages. Currently enabled languages are: C CXX See PROJECT command for help enabling other languages. -- Performing Test -Wl,--no-undefined - Failed -- Check for working C compiler: /usr/bin/gcc32 -- Check for working C compiler: /usr/bin/gcc32 -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done ... where check_cxx_linker_flag macro looks line check_cxx_compiler_flag: file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx" "int main() { return 0;}\n") message(STATUS "Performing Test ${_FLAG}") try_compile(${_RESULT} ${CMAKE_BINARY_DIR} "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx" CMAKE_FLAGS -DCMAKE_EXE_LINKER_FLAGS="${_FLAG}" OUTPUT_VARIABLE OUTPUT ) Any suggestions? Looks like a bug. Please file a bug report with a small example that is easy to reproduce. Thanks. -Bill ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Problem with Xcode... solved?
Carminati Federico wrote: Dear Bill, this works, however this program loads shared libs supposed to be in a directory pointed to by DYLD_LIBRARY_PATH, so it fails to load. Any idea? Best regards, Build the program so that it uses built in run-time paths. The only other option is to run the program from some cmake script using execute_process and setting up the environment from the cmake script. -Bill ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Using try_compile before project() command
Hello Yuri, I posted a similar question some time ago. There seems to be no way to chose the compiler within the CMakeList.txt, because you can do very little before the Project command, and afterwards it is too late. Anybody can help here? best, regards, Federico Carminati CERN-PH 1211 Geneva 23 Switzerland Tel: +41 22 76 74959 Fax: +41 22 76 79480 Mobile: +41 76 487 4843 On 15 Jul 2008, at 15:56, Yuri Timenkov wrote: I want to tune initial compile and linker flags to put into cache. in main CMakeLists.txt: # Override default Compiler flags set(CMAKE_USER_MAKE_RULES_OVERRIDE MyCompilerFlags) project(MyProject) in MyCompilerFlags.cmake: check_cxx_linker_flag("-Wl,--warn-unresolved-symbols" HAVE_LD_WARN_UNRESOLVED_SYMBOLS) if(HAVE_LD_WARN_UNRESOLVED_SYMBOLS) set(CMAKE_SHARED_LINKER_FLAGS_INIT "$ {CMAKE_SHARED_LINKER_FLAGS_INIT} -Wl,--warn-unresolved-symbols") endif(HAVE_LD_WARN_UNRESOLVED_SYMBOLS) This works fine for CMake 2.4: -- Performing Test -Wl,--warn-unresolved-symbols -- Performing Test -Wl,--warn-unresolved-symbols - Success -- Performing Test -Wl,--no-undefined -- Performing Test -Wl,--no-undefined - Success -- Check for working C compiler: /usr/bin/gcc32 -- Check for working C compiler: /usr/bin/gcc32 -- works ... But for CMake 2.6 this code fails with error: -- The C compiler identification is GNU -- The CXX compiler identification is GNU -- Performing Test -Wl,--warn-unresolved-symbols CMake Error: Unknown extension ".cxx" for file "/vz/build/test/ CMakeFiles/CMakeTmp/src.cxx". TRY_COMPILE only works for enabled languages. Currently enabled languages are: C CXX See PROJECT command for help enabling other languages. -- Performing Test -Wl,--warn-unresolved-symbols - Failed -- Performing Test -Wl,--no-undefined CMake Error: Unknown extension ".cxx" for file "/vz/build/test/ CMakeFiles/CMakeTmp/src.cxx". TRY_COMPILE only works for enabled languages. Currently enabled languages are: C CXX See PROJECT command for help enabling other languages. -- Performing Test -Wl,--no-undefined - Failed -- Check for working C compiler: /usr/bin/gcc32 -- Check for working C compiler: /usr/bin/gcc32 -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done ... where check_cxx_linker_flag macro looks line check_cxx_compiler_flag: file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/ src.cxx" "int main() { return 0;}\n") message(STATUS "Performing Test ${_FLAG}") try_compile(${_RESULT} ${CMAKE_BINARY_DIR} "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx" CMAKE_FLAGS -DCMAKE_EXE_LINKER_FLAGS="${_FLAG}" OUTPUT_VARIABLE OUTPUT ) Any suggestions? ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Problem with Xcode... solved?
Dear Bill, this works, however this program loads shared libs supposed to be in a directory pointed to by DYLD_LIBRARY_PATH, so it fails to load. Any idea? Best regards, Federico Carminati CERN-PH 1211 Geneva 23 Switzerland Tel: +41 22 76 74959 Fax: +41 22 76 79480 Mobile: +41 76 487 4843 On 15 Jul 2008, at 17:29, Bill Hoffman wrote: Carminati Federico wrote: As part of my make process I am running a custom program that usually is in my path in a non-standard directory. When I try building the target with Xcode, the PATH variable is not affected by my shell settings, and it default to the standard on my machine. This does not include my special directory. So either I find a way to set the path when executing xcode, or I specify the full path to my program. I would recommend using find_program to find your command, and then use a full path. You can not rely on a PATH setting. True, both problems are fixed. Thanks a lot. Great, I am going to put them in the next RC for 2.6.1. Thanks for testing CVS CMake! -Bill ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Problem with Xcode... solved?
Carminati Federico wrote: As part of my make process I am running a custom program that usually is in my path in a non-standard directory. When I try building the target with Xcode, the PATH variable is not affected by my shell settings, and it default to the standard on my machine. This does not include my special directory. So either I find a way to set the path when executing xcode, or I specify the full path to my program. I would recommend using find_program to find your command, and then use a full path. You can not rely on a PATH setting. True, both problems are fixed. Thanks a lot. Great, I am going to put them in the next RC for 2.6.1. Thanks for testing CVS CMake! -Bill ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
[CMake] Error with Unix Makefiles under UWIN
I know UWIN probably is NOT supported but hey I'll give it a shot. This is on WinXP, cmake 2.4.8, Visual Studio 2003.Net. It seems cmake successfully ran under UWIN generating "Unix Makefiles". I have a simple project (expat actually) that generates a library (expat) and an executable (xmlwf.exe). The library _seems_ to be created correctly (static) as I get an "expat.lib" file in the build directory. The problem comes when linking the executable. Here is the verbose output from the link stage. Linking C executable ../Bin/xmlwf.exe cd C:/Workspace/expat/uwin/xmlwf && C:/Applications/CMake-2.4.8/bin/ cmake.exe - P CMakeFiles/xmlwf.dir/cmake_clean_target.cmake cd C:/Workspace/expat/uwin/xmlwf && C:/Applications/UWIN/usr/bin/ cc.exe "C MakeFiles/xmlwf.dir/codepage.obj" "CMakeFiles/xmlwf.dir/xmlfile.obj" "CMakeFile s/xmlwf.dir/xmlmime.obj" "CMakeFiles/xmlwf.dir/xmlwf.obj" "CMakeFiles/ xmlwf.dir /win32filemap.obj" -o ../Bin/xmlwf.exe -LC:/Workspace/expat/uwin/ Bin -lexpat .lib cc: expat.lib: library not found make[2]: *** [Bin/xmlwf.exe] Error 1 make[2]: Leaving directory `/C/Workspace/expat/uwin' make[1]: *** [xmlwf/CMakeFiles/xmlwf.dir/all] Error 2 make[1]: Leaving directory `/C/Workspace/expat/uwin' make: *** [all] Error 2 I am thinking the -lexpat.lib should really be -lexpat but I am not real sure at this point. Any ideas? -- Mike Jackson Senior Research Engineer Innovative Management & Technology Services ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Three short questions...
Hi again, first of all, thanks for the quick answer. Actually all of the requests were merely taste related. I admit that this is not really important but from time to time I am looking at the libraries and includes I am using and then I like it, if they are nicely formatted or as short as possible. Philip Lowman wrote: Hi there, I've stumbled over three little questions which I could not answer from the FAQs nor the CMake documentation or the Wiki. Maybe one of the specialists can help me out... The first question is whether it is possible to prevent environment variables from being expanded by CMake when it comes to setting include or link directories (INCLUDE_DIRECTORIES and LINK_DIRECTORIES). Not sure what you mean here. You might be able to do this (don't know, never tried), but I wouldn't recommend it: INCLUDE_DIRECTORIES($ENV{FOO}) Actually colleagues and me are oftentimes using environment variables. Until now we used to work solely with Visual Studio Project files being distributed along different machines and it turned out to be very convenient to have a base directory of your third party libraries and your core library defined in environment variables. Nobody needed to change any configuration files and thus we could put them to the SVN. With CMake it is working fine as well though I usually use FILE(TO_CMAKE_PATH $ENV{FOO} CMAKE_FOO). The second question is whether I can prevent the MSVC generator to append $(OutDir) to LINK_DIRECTORIES. For each call to LINK_DIRECTORIES I get two directories (e.g. LINK_DIRECTORIES(c:/foo/bar) creates c:/foo/bar/$(OutDir) and c:/foo/bar). I didn't even realize that it did that. I think that's probably meant as a convenience for MSVC developers who sometimes like to share the same filename across different release configurations (in different directories obviously). Not sure if it's disableable or not, is it causing you problems? Does not cause any problems, but since we usually differentiate via postfix and not via directory we just don't need it. Again... it's just taste. And the last question is, if it is possible to tell the FindQt.cmake script to give me the plain libraries without the full path of them being prepended (I am talking about the content of the QT_LIBRARIES variable). I would rather like to use LINK_DIRECTORIES and TARGET_LINK_LIBRARIES separately, i.e. I would prefer QtGuid4.lib over C:\Qt\lib\QtGuid4.lib. It should be possible to do this with STRING(REGEX REPLACE... ) if there is no better way. I'm curious why you would need to do this though. The use of TARGET_LINK_LIBRARIES() with full paths is highly desired over LINK_LIBRARIES() and TARGET_LINK_LIBRARIES() with a relative library filename. Ok, I see what you mean though I am wondering why in general not all CMake Find modules follow this paradigm. For instance all of my ITK libraries seem to be set via TARGET_LINK_LIBRARIES() without the path and the path (here luckily including the $(OutDir), which I just realized) seems to be set via LINK_DIRECTORIES(). Maybe it is done that way to support the multi-target MSVC generator because LINK_DIRECTORIES() does not (yet?) support the CONFIGURATIONS option. Cheers, Hauke -- Tim Hauke Heibel Computer Aided Medical Procedures (CAMP) fon: +49 89 289 19427 fax: +49 89 289 17059 ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Problem with Xcode... solved?
Hello Bill, See below Federico Carminati CERN-PH 1211 Geneva 23 Switzerland Tel: +41 22 76 74959 Fax: +41 22 76 79480 Mobile: +41 76 487 4843 On 15 Jul 2008, at 16:30, Bill Hoffman wrote: Carminati Federico wrote: Hello Bill, thanks a lot for your answer. I have few more questions: 1. I am running some custom commands in the makefile. Of course Xcode does not have hte path. Should I quote them with the full path or can I indicate a path to xcode via cmake? I am not sure what the question is, can you be more specific. As part of my make process I am running a custom program that usually is in my path in a non-standard directory. When I try building the target with Xcode, the PATH variable is not affected by my shell settings, and it default to the standard on my machine. This does not include my special directory. So either I find a way to set the path when executing xcode, or I specify the full path to my program. 2. Can you point me to the instructions on how to install the cvs cmake? http://www.cmake.org/HTML/Download.html#cvs Done 3. The first time I open the project with xcode I get the attached question (Select the directory to use as the project root). Am I missing something? This has also been fixed. True, both problems are fixed. Thanks a lot. -Bill ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Problem with Xcode... solved?
Carminati Federico wrote: Hello Bill, thanks a lot for your answer. I have few more questions: 1. I am running some custom commands in the makefile. Of course Xcode does not have hte path. Should I quote them with the full path or can I indicate a path to xcode via cmake? I am not sure what the question is, can you be more specific. 2. Can you point me to the instructions on how to install the cvs cmake? http://www.cmake.org/HTML/Download.html#cvs 3. The first time I open the project with xcode I get the attached question (Select the directory to use as the project root). Am I missing something? This has also been fixed. -Bill ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Problem with Xcode... solved?
Carminati Federico wrote: Hello, following my previous posting, I have identified the problem with Xcode generation. The following CMakeList.txt would generate correct Unix Makefiles but wrong Xcode project Project(Test) Cmake_Minimum_Required(VERSION 2.6) Set(CMAKE_VERBOSE_MAKEFILE ON) Set_source_files_properties(hello.cxx PROPERTIES COMPILE_FLAGS "-D_version_=\"10.5\"") Add_Executable(hello hello.cxx) The point is that the escaped quotes get "doubly escaped" in the Xcode project file /* Begin PBXBuildFile section */ 656B90656B90656B9000 /* /Users/fca/cmaketest/hello.cxx */ = {isa = PBXBuildFile; fileRef = 656A00656A00656A /* /Users/fca/cmaketest/hello.cxx */; settings = { COMPILER_FLAGS = "-D_version_=\\"10.5\\""; }; }; /* End PBXBuildFile section */ Removing the double quotes "by hand" fixes the problem. Alternative solutions are to use single quotes. Or even add_definitions would of course do, even if it is global for all subdirectories. But still this is an inconsistency that should be fixed. Best, This was fixed by a commit to CVS last night. Please try CVS CMake if you can. -Bill -- Bill Hoffman Kitware, Inc. 28 Corporate Drive Clifton Park, NY 12065 [EMAIL PROTECTED] http://www.kitware.com 518-371-3971 (phone and fax) ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
[CMake] Using try_compile before project() command
I want to tune initial compile and linker flags to put into cache. in main CMakeLists.txt: # Override default Compiler flags set(CMAKE_USER_MAKE_RULES_OVERRIDE MyCompilerFlags) project(MyProject) in MyCompilerFlags.cmake: check_cxx_linker_flag("-Wl,--warn-unresolved-symbols" HAVE_LD_WARN_UNRESOLVED_SYMBOLS) if(HAVE_LD_WARN_UNRESOLVED_SYMBOLS) set(CMAKE_SHARED_LINKER_FLAGS_INIT "${CMAKE_SHARED_LINKER_FLAGS_INIT} -Wl,--warn-unresolved-symbols") endif(HAVE_LD_WARN_UNRESOLVED_SYMBOLS) This works fine for CMake 2.4: -- Performing Test -Wl,--warn-unresolved-symbols -- Performing Test -Wl,--warn-unresolved-symbols - Success -- Performing Test -Wl,--no-undefined -- Performing Test -Wl,--no-undefined - Success -- Check for working C compiler: /usr/bin/gcc32 -- Check for working C compiler: /usr/bin/gcc32 -- works ... But for CMake 2.6 this code fails with error: -- The C compiler identification is GNU -- The CXX compiler identification is GNU -- Performing Test -Wl,--warn-unresolved-symbols CMake Error: Unknown extension ".cxx" for file "/vz/build/test/CMakeFiles/CMakeTmp/src.cxx". TRY_COMPILE only works for enabled languages. Currently enabled languages are: C CXX See PROJECT command for help enabling other languages. -- Performing Test -Wl,--warn-unresolved-symbols - Failed -- Performing Test -Wl,--no-undefined CMake Error: Unknown extension ".cxx" for file "/vz/build/test/CMakeFiles/CMakeTmp/src.cxx". TRY_COMPILE only works for enabled languages. Currently enabled languages are: C CXX See PROJECT command for help enabling other languages. -- Performing Test -Wl,--no-undefined - Failed -- Check for working C compiler: /usr/bin/gcc32 -- Check for working C compiler: /usr/bin/gcc32 -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done ... where check_cxx_linker_flag macro looks line check_cxx_compiler_flag: file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx" "int main() { return 0;}\n") message(STATUS "Performing Test ${_FLAG}") try_compile(${_RESULT} ${CMAKE_BINARY_DIR} "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx" CMAKE_FLAGS -DCMAKE_EXE_LINKER_FLAGS="${_FLAG}" OUTPUT_VARIABLE OUTPUT ) Any suggestions? ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
[CMake] Problem with Xcode... solved?
Hello, following my previous posting, I have identified the problem with Xcode generation. The following CMakeList.txt would generate correct Unix Makefiles but wrong Xcode project Project(Test) Cmake_Minimum_Required(VERSION 2.6) Set(CMAKE_VERBOSE_MAKEFILE ON) Set_source_files_properties(hello.cxx PROPERTIES COMPILE_FLAGS "-D_version_=\"10.5\"") Add_Executable(hello hello.cxx) The point is that the escaped quotes get "doubly escaped" in the Xcode project file /* Begin PBXBuildFile section */ 656B90656B90656B9000 /* /Users/fca/cmaketest/hello.cxx */ = {isa = PBXBuildFile; fileRef = 656A00656A00656A /* /Users/fca/ cmaketest/hello.cxx */; settings = { COMPILER_FLAGS = "-D_version_=\ \"10.5\\""; }; }; /* End PBXBuildFile section */ Removing the double quotes "by hand" fixes the problem. Alternative solutions are to use single quotes. Or even add_definitions would of course do, even if it is global for all subdirectories. But still this is an inconsistency that should be fixed. Best, Federico Carminati CERN-PH 1211 Geneva 23 Switzerland Tel: +41 22 76 74959 Fax: +41 22 76 79480 Mobile: +41 76 487 4843 ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Fw: Re: Problems generating Xcode projects
On Tue, Jul 15, 2008 at 3:33 PM, Samuel Crow >> I've had the same problems. I used to have problems with incorrect quoting in connection with ADD_DEFINITIONS in CMake prior to 2.6. If your CMakeLists.txt files had been written to work around this issue in 2.4, they might be broken with 2.6. I put the following in my toplevel CMakeLists.txt to work around this specific issue in both CMake 2.4 and 2.6 # -- for CMake 2.6.x if(COMMAND cmake_policy) # -- use automatic escaping in add_definitions cmake_policy(SET CMP0005 NEW) set(ESCAPE "") else(COMMAND cmake_policy) # -- pre 2.6 needs escaping in add_definitions if(CMAKE_GENERATOR MATCHES ".*Makefiles") set(ESCAPE "\\\"") else(CMAKE_GENERATOR MATCHES ".*Makefiles") set(ESCAPE "\"") endif(CMAKE_GENERATOR MATCHES ".*Makefiles") endif(COMMAND cmake_policy) Then, an ADD_DEFINITIONS that needs quoting looks like ADD_DEFINITIONS (-DVERSION="${ESCAPE}0.4.0${ESCAPE}") Kai ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Fw: Re: Problems generating Xcode projects
Samuel Crow wrote: --- On Tue, 7/15/08, Samuel Crow <[EMAIL PROTECTED]> wrote: From: Samuel Crow <[EMAIL PROTECTED]> Subject: Re: [CMake] Problems generating Xcode projects To: "Carminati Federico" <[EMAIL PROTECTED]> Date: Tuesday, July 15, 2008, 1:31 PM Hello Federico, I've had the same problems. When it did work right it just had calls to the Make utility internally anyway. If all it's going to do is call make, you might just as well generate UNIX-style makefiles and call them from the terminal prompt by typing make and, if there is an install target, make install afterward. Yes, makefiles are used in a very limited way to get around some issues with Xcode, but 99% of the build is done with Xcode. Custom commands are done with small makefiles. I don't think that there is another way to do them. Also, there are some makefiles used to get around some rebuild problems that Xcode has when linking to external libraries. However, the bulk of the build is done with native Xcode. When I try to open the project with Xcode I have Project /Users/fca/AliCmake/NewIO/xcode_dir/AliRoot.xcodeproj cannot be opened because the project file cannot be parsed. Any hint? Best, This sounds like a bug, can you send me (off the list AliRoot.xcodeproj)? (It maybe a bug that I just fixed...) -Bill ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
[CMake] Fw: Re: Problems generating Xcode projects
--- On Tue, 7/15/08, Samuel Crow <[EMAIL PROTECTED]> wrote: > From: Samuel Crow <[EMAIL PROTECTED]> > Subject: Re: [CMake] Problems generating Xcode projects > To: "Carminati Federico" <[EMAIL PROTECTED]> > Date: Tuesday, July 15, 2008, 1:31 PM > Hello Federico, > > I've had the same problems. When it did work right it > just had calls to the Make utility internally anyway. If > all it's going to do is call make, you might just as > well generate UNIX-style makefiles and call them from the > terminal prompt by typing make and, if there is an install > target, make install afterward. > > --Sam > > > --- On Tue, 7/15/08, Carminati Federico > <[EMAIL PROTECTED]> wrote: > > > From: Carminati Federico > <[EMAIL PROTECTED]> > > Subject: [CMake] Problems generating Xcode projects > > To: cmake@cmake.org > > Cc: "Florian Uhlig" <[EMAIL PROTECTED]> > > Date: Tuesday, July 15, 2008, 12:13 PM > > Hello, > > I am trying to generate an Xcode project. I have > > > > cmake 2.6 > > Xcode 3.0 > > Mac OS X 10.5.4 > > > > When I try to open the project with Xcode I have > > > > Project > > /Users/fca/AliCmake/NewIO/xcode_dir/AliRoot.xcodeproj > > cannot > > be opened because the project file cannot be parsed. > > > > Any hint? Best, > > > > Federico Carminati > > CERN-PH > > 1211 Geneva 23 > > Switzerland > > Tel: +41 22 76 74959 > > Fax: +41 22 76 79480 > > Mobile: +41 76 487 4843 > > > > ___ > > CMake mailing list > > CMake@cmake.org > > http://www.cmake.org/mailman/listinfo/cmake ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
[CMake] cpack_install_cmake_projects options?
I am trying to use CPack to install a simple windows command line exe that links to 3 dll's: TeneosCommon.dll, vtkCommon.dll, vtksys.dll, where Teneos is a 3rd party source that compiles against VTK, ITK, Gdcm and KWWidgets. Currently, my TeneosCPack.cmake file has SET( CPACK_INSTALL_CMAKE_PROJECTS "${TeneosApplications_BINARY_DIR};TeneosApplications;ALL;/;${VTK_DIR};VTK Runtime Libs;RuntimeLibraries;/;${KWWidgets_DIR};KWWidgets Libs;ALL;/; ${GDCM_DIR};GDCM Libs;ALL;/;${Teneos_DIR};Teneos Runtime Libs;ALL;/" ) But this packages all libs, dlls and header files. What other options other than ALL are there? Would I use CPACK_SOURCE_IGNORE_FILES somehow to exclude all .lib and .h files and possibly certain dll's? How would I request that only the aforementioned dll's are packaged? Dean ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
[CMake] Problems generating Xcode projects
Hello, I am trying to generate an Xcode project. I have cmake 2.6 Xcode 3.0 Mac OS X 10.5.4 When I try to open the project with Xcode I have Project /Users/fca/AliCmake/NewIO/xcode_dir/AliRoot.xcodeproj cannot be opened because the project file cannot be parsed. Any hint? Best, Federico Carminati CERN-PH 1211 Geneva 23 Switzerland Tel: +41 22 76 74959 Fax: +41 22 76 79480 Mobile: +41 76 487 4843 ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Three short questions...
On Tue, Jul 15, 2008 at 4:17 AM, Hauke Heibel <[EMAIL PROTECTED]> wrote: > Hi there, > > I've stumbled over three little questions which I could not answer from the > FAQs nor the CMake documentation or the Wiki. Maybe one of the specialists > can help me out... > > The first question is whether it is possible to prevent environment > variables from being expanded by CMake when it comes to setting include or > link directories (INCLUDE_DIRECTORIES and LINK_DIRECTORIES). Not sure what you mean here. You might be able to do this (don't know, never tried), but I wouldn't recommend it: INCLUDE_DIRECTORIES($ENV{FOO}) > The second question is whether I can prevent the MSVC generator to append > $(OutDir) to LINK_DIRECTORIES. For each call to LINK_DIRECTORIES I get two > directories (e.g. LINK_DIRECTORIES(c:/foo/bar) creates c:/foo/bar/$(OutDir) > and c:/foo/bar). I didn't even realize that it did that. I think that's probably meant as a convenience for MSVC developers who sometimes like to share the same filename across different release configurations (in different directories obviously). Not sure if it's disableable or not, is it causing you problems? > And the last question is, if it is possible to tell the FindQt.cmake script > to give me the plain libraries without the full path of them being prepended > (I am talking about the content of the QT_LIBRARIES variable). I would > rather like to use LINK_DIRECTORIES and TARGET_LINK_LIBRARIES separately, > i.e. I would prefer QtGuid4.lib over C:\Qt\lib\QtGuid4.lib. It should be possible to do this with STRING(REGEX REPLACE... ) if there is no better way. I'm curious why you would need to do this though. The use of TARGET_LINK_LIBRARIES() with full paths is highly desired over LINK_LIBRARIES() and TARGET_LINK_LIBRARIES() with a relative library filename. It allows you to support use cases like this: If you have two external packages that both provide "sys.lib" for example.. C:\foo\sys.lib C:\bar\sys.lib ...there is no way to link them both in using LINK_DIRECTORIES() and TARGET_LINK_LIBRARIES(). If you only want one trying to figure out which one you want is usually impossible if for other reasons you need other libraries from both C:\foo and C:\bar. If on the other hand you're using TARGET_LINK_LIBRARIES with full paths the linker should be able to figure everything out since most linkers support full paths to libraries. Usually people just use the absolute paths determined by CMake Find modules or by manual calls to FIND_LIBRARY(). There are several variables that you can modify prior to calling FIND_LIBRARY() or FIND_PACKAGE() that will usually allow you to override the default directory search paths. See CMAKE_PREFIX_PATH and CMAKE_LIBRARY_PATH. http://www.cmake.org/HTML/cmake-2.6.html#command:find_library -- Philip Lowman ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
[CMake] Help with Execute_Process
Hello, I would like to execute the following command Execute_Process( COMMAND svn info | grep \"Last Changed Rev:\" | cut -d: -f2 OUTPUT_VARIABLE _res) But concatenation with pipes does not work. Any hint? Best regards, Federico Carminati CERN-PH 1211 Geneva 23 Switzerland Tel: +41 22 76 74959 Fax: +41 22 76 79480 Mobile: +41 76 487 4843 ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] newbie - VC++ external link dependency
On Tue, Jul 15, 2008 at 4:53 AM, Jack Andrews <[EMAIL PROTECTED]> wrote: > hi guys, > > i've got a small library (portlib) that does things including sockets > on linux and windows. my problem is that many executables depend on > this library and it seems that for every executable i also have to add > > IF(WIN32) > LINK_LIBRARIES(wsock32 ws2_32 portlib) > ENDIF(WIN32) > > that is, on top of portlib, i have to specify windows libs. i can't > seem to work out how i can get away with just: > > LINK_LIBRARIES(portlib) > > so i tried to add > > LINK_LIBRARIES(wsock32 ws2_32) > > to the portlib CMakeLists.txt but this didn't work as i hoped. Usually if you use TARGET_LINK_LIBRARIES, CMake will handle the dependencies automatically ADD_LIBRARY(portlib ${portlib_srcs} ${portlib_public_hdrs}) IF(WIN32) TARGET_LINK_LIBRARIES(portlib ws2_32) ENDIF() ADD_EXECUTABLE(foo foo.cc) TARGET_LINK_LIBRARIES(foo portlib) # on WIN32, will be linked against ws2_32 as well -- Philip Lowman ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
[CMake] newbie - VC++ external link dependency
hi guys, i've got a small library (portlib) that does things including sockets on linux and windows. my problem is that many executables depend on this library and it seems that for every executable i also have to add IF(WIN32) LINK_LIBRARIES(wsock32 ws2_32 portlib) ENDIF(WIN32) that is, on top of portlib, i have to specify windows libs. i can't seem to work out how i can get away with just: LINK_LIBRARIES(portlib) so i tried to add LINK_LIBRARIES(wsock32 ws2_32) to the portlib CMakeLists.txt but this didn't work as i hoped. thanks, jack ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
[CMake] The reason of /STACK:10000000 linker flag on Visual Studio
Hi, We encountered a problem with this option: Such big stack sizes negatively affect threads count. Numbers: with 10Mb stacks it is possible to create ~195 threads on 32-bit system, with default 1Mb stacks it is possible to create ~2000 threads on the same system. So why does CMake need such huge stacks? And are such stacks necessary for every program (even C++)? Thanks. ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake
[CMake] Three short questions...
Hi there, I've stumbled over three little questions which I could not answer from the FAQs nor the CMake documentation or the Wiki. Maybe one of the specialists can help me out... The first question is whether it is possible to prevent environment variables from being expanded by CMake when it comes to setting include or link directories (INCLUDE_DIRECTORIES and LINK_DIRECTORIES). The second question is whether I can prevent the MSVC generator to append $(OutDir) to LINK_DIRECTORIES. For each call to LINK_DIRECTORIES I get two directories (e.g. LINK_DIRECTORIES(c:/foo/bar) creates c:/foo/bar/$(OutDir) and c:/foo/bar). And the last question is, if it is possible to tell the FindQt.cmake script to give me the plain libraries without the full path of them being prepended (I am talking about the content of the QT_LIBRARIES variable). I would rather like to use LINK_DIRECTORIES and TARGET_LINK_LIBRARIES separately, i.e. I would prefer QtGuid4.lib over C:\Qt\lib\QtGuid4.lib. I am using CMake 2.6-patch 0. Any hints would be great. Regards, Hauke -- Tim Hauke Heibel Computer Aided Medical Procedures (CAMP) fon: +49 89 289 19427 fax: +49 89 289 17059 ___ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake