Re: [CMake] New version of "Mastering CMake"
Hi Steve, Please check out this link: http://www.kitware.com/products/books.html The new version is planned for Early 2010. I have also contacted the sales for pre-order information but so far, I got no reply :-\ Cheers, Romain Chanu 2009/12/2 Steven Wilson > I read in a past post that Kitware (or the authors) has another edition > planned for the book "Mastering CMake." I plan to recommend this text to > people in my company for learning CMake, but I wanted to know how soon to > expect the new edition in order to best advise people on which edition to > purchase. Is there a timetable for releasing the new edition? If so, > will you share when we can expect it? > > Thanks, > > Steve > > ___ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Please keep messages on-topic and check the CMake FAQ at: > http://www.cmake.org/Wiki/CMake_FAQ > > Follow this link to subscribe/unsubscribe: > http://www.cmake.org/mailman/listinfo/cmake > ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
[CMake] [PATCH] Fixed some typos
Hi all, please see the attached patch. I did _not_ fix typos in changelogs. If you guys think that is a worthwhile thing to do look for explicitely seperate superceded Thanks, Richard ? typos.diff Index: Modules/CPackRPM.cmake === RCS file: /cvsroot/CMake/CMake/Modules/CPackRPM.cmake,v retrieving revision 1.21 diff -u -r1.21 CPackRPM.cmake --- Modules/CPackRPM.cmake 28 Nov 2009 14:57:59 - 1.21 +++ Modules/CPackRPM.cmake 2 Dec 2009 01:00:27 - @@ -252,7 +252,7 @@ # CPACK_RPM_PACKAGE_DESCRIPTION # The variable content may be either -# - explicitely given by tthe user or +# - explicitly given by tthe user or # - filled with the content of CPACK_PACKAGE_DESCRIPTION_FILE # if it is defined # - set to a default value Index: Source/cmCTest.cxx === RCS file: /cvsroot/CMake/CMake/Source/cmCTest.cxx,v retrieving revision 1.380 diff -u -r1.380 cmCTest.cxx --- Source/cmCTest.cxx 30 Nov 2009 21:08:11 - 1.380 +++ Source/cmCTest.cxx 2 Dec 2009 01:00:32 - @@ -1941,7 +1941,7 @@ i++; std::string targ = args[i]; // AddTestsForDashboard parses the dashborad type and converts it - // into the seperate stages + // into the separate stages if (!this->AddTestsForDashboardType(targ)) { performSomeTest = false; Index: Source/cmIncludeDirectoryCommand.cxx === RCS file: /cvsroot/CMake/CMake/Source/cmIncludeDirectoryCommand.cxx,v retrieving revision 1.32 diff -u -r1.32 cmIncludeDirectoryCommand.cxx --- Source/cmIncludeDirectoryCommand.cxx 28 Sep 2009 15:42:45 - 1.32 +++ Source/cmIncludeDirectoryCommand.cxx 2 Dec 2009 01:00:33 - @@ -63,7 +63,7 @@ // " /foo/bar ///boo/hoo /dingle/berry " // -// ideally that should be three seperate arguments but when sucking the +// ideally that should be three separate arguments but when sucking the // output from a program and passing it into a command the cleanup doesn't // always happen // Index: Source/cmInstallFilesCommand.h === RCS file: /cvsroot/CMake/CMake/Source/cmInstallFilesCommand.h,v retrieving revision 1.25 diff -u -r1.25 cmInstallFilesCommand.h --- Source/cmInstallFilesCommand.h 28 Sep 2009 15:42:46 - 1.25 +++ Source/cmInstallFilesCommand.h 2 Dec 2009 01:00:33 - @@ -66,7 +66,7 @@ virtual const char* GetFullDocumentation() { return - "This command has been superceded by the install command. It " + "This command has been superseded by the install command. It " "is provided for compatibility with older CMake code. " "The FILES form is directly replaced by the FILES form of the " "install command. The regexp form can be expressed " Index: Source/cmInstallProgramsCommand.h === RCS file: /cvsroot/CMake/CMake/Source/cmInstallProgramsCommand.h,v retrieving revision 1.22 diff -u -r1.22 cmInstallProgramsCommand.h --- Source/cmInstallProgramsCommand.h 28 Sep 2009 15:42:46 - 1.22 +++ Source/cmInstallProgramsCommand.h 2 Dec 2009 01:00:33 - @@ -67,7 +67,7 @@ virtual const char* GetFullDocumentation() { return - "This command has been superceded by the install command. It " + "This command has been superseded by the install command. It " "is provided for compatibility with older CMake code. " "The FILES form is directly replaced by the PROGRAMS form of the " "INSTALL command. The regexp form can be expressed more clearly " Index: Source/cmInstallTargetsCommand.h === RCS file: /cvsroot/CMake/CMake/Source/cmInstallTargetsCommand.h,v retrieving revision 1.17 diff -u -r1.17 cmInstallTargetsCommand.h --- Source/cmInstallTargetsCommand.h 28 Sep 2009 15:42:47 - 1.17 +++ Source/cmInstallTargetsCommand.h 2 Dec 2009 01:00:33 - @@ -58,7 +58,7 @@ virtual const char* GetFullDocumentation() { return - "This command has been superceded by the install command. It " + "This command has been superseded by the install command. It " "is provided for compatibility with older CMake code.\n" " install_targets( [RUNTIME_DIRECTORY dir] target target)\n" "Create rules to install the listed targets into the given directory. " Index: Source/cmLocalGenerator.cxx === RCS file: /cvsroot/CMake/CMake/Source/cmLocalGenerator.cxx,v retrieving revision 1.322 diff -u -r1.322 cmLocalGenerator.cxx --- Source/cmLocalGenerator.cxx 30 Nov 2009 16:16:24 - 1.322 +++ Source/cmLocalGenerator.cxx 2 Dec 2009 01:00:38 - @@ -3034,7 +3034,7 @@ if(define.find_first_of("#") != define.npos) { cmOStringStream e; -
Re: [CMake] Removing default COMPILE_FLAGS
> > I believe CMAKE_CXX_FLAGS is consulted each time an add_library() or > > add_executable() call is processed. So you should be able to remove the > > flag, add the singleton library/executable, and put the flag back. > > > > tyler > > This is the first thing I tried, however it doesn't seem to work. > I seems they are written to the flags.make files at the end, > with whatever the final value of CMAKE_CXX_FLAGS is. > -- > Daniel Actually, I think it uses whatever the final value of CMAKE_CXX_FLAGS is within the CMakeLists.txt file. Since I was setting the variable back to its original value in the same file with the target, the change was being undone, even though I was setting it back after adding the target. If I just leave the value changed and let the normal scoping rules undo the change, it works perfectly. Now that I think about it, this seems like the same way that include_directories() works. -- Daniel ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Removing default COMPILE_FLAGS
> I believe CMAKE_CXX_FLAGS is consulted each time an add_library() or > add_executable() call is processed. So you should be able to remove the > flag, add the singleton library/executable, and put the flag back. > > tyler This is the first thing I tried, however it doesn't seem to work. I seems they are written to the flags.make files at the end, with whatever the final value of CMAKE_CXX_FLAGS is. -- Daniel ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Removing default COMPILE_FLAGS
On Tue, Dec 01, 2009 at 10:10:05PM +, Daniel Nelson wrote: > flag. Is it possible to remove a flag from the default CMAKE_CXX_FLAGS > variable > only for this target? Or do I have to remove the flag from the default flags I believe CMAKE_CXX_FLAGS is consulted each time an add_library() or add_executable() call is processed. So you should be able to remove the flag, add the singleton library/executable, and put the flag back. tyler ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] parallel builds (ctest_build() ) for dashboards ?
On 12/1/09 12:30 PM, Bill Hoffman said: >> Is that better/worse/equivalent to David's suggestion of: >> >> set(CTEST_BUILD_FLAGS -j4) ? >> > >Worse most likely. :) > >Both should work. Thanks. If our dashboards are all red tomorrow, you'll know why. :) -- Sean McBride, B. Eng s...@rogue-research.com Rogue Researchwww.rogue-research.com Mac Software Developer Montréal, Québec, Canada ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
[CMake] Removing default COMPILE_FLAGS
I am building a project that has a single managed c++ target, and I need to remove a compile flag for only this one target, since it conflicts with the -clr flag. Is it possible to remove a flag from the default CMAKE_CXX_FLAGS variable only for this target? Or do I have to remove the flag from the default flags and add it in for every target except this one? ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Intel Compiler with OSX 10.6
I think I wrote part of that file. Didn't realize I was putting any OS X 10.4 specific items in there. Any ways, I don't have access to ICC anymore so you will probably have to experiment with some settings and then update the darwin-icc.cmake files. Sorry I can not be of any more help. _ Mike Jackson mike.jack...@bluequartz.net BlueQuartz Softwarewww.bluequartz.net Principal Software Engineer Dayton, Ohio On Dec 1, 2009, at 3:46 PM, Bradley Lowekamp wrote: Hello, It appear the following file is out of date: CMake/Modules/Platform/Darwin-icc.cmake I have just starting using the Intel Compiler on my apple. It appear that this file is very 10.4 specific, in that it does not set a lot of variable unless we are running 10.4. Specifically I noticed that I am not getting any optimization or debug compiler flags. I built a quick experimental build, which makes me think that things are functioning: http://www.cdash.org/CDash/buildSummary.php?buildid=483919 I am not familiar with these platform configuration files, nor the details of the differences of OS X compilers as I have always just let cmake handle it :) Any help would be appreciated. Brad Bradley Lowekamp Lockheed Martin Contractor for Office of High Performance Computing and Communications National Library of Medicine blowek...@mail.nih.gov ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] cmake 2.8.0, FindGTK2 on mac
That doesn't seem to help. But yeah, it seems the find_path returns the extra gtk... if I message() the contents of GTK2_GTK_INCLUDE_DIR I get /Library/Frameworks/Gtk.framework/Headers/gtk While gtkversion's full name is /Library/Frameworks/Gtk.framework/Headers/gtk/gtkversion.h Maybe some kind of if(APPLE) then apple "../" to alot of these paths are in order. I'm not sure what approach to take that would require the least amount of hacking. I think find_path is probably trying to be compatible with the mac style of framework installs, which may put a part of the include (gtk/) as part of the base framework name (Gtk.framework). This is a pure guess though, but man gcc under the -F switch has some info on this. On Tue, Dec 1, 2009 at 2:19 PM, Philip Lowman wrote: > Hi, I wrote FindGTK2. > > You might try removing the "gtk/" from line 350? Line 345 where the include > path is searched for may also need to be modified... > > I don't have a MAC so if anyone has any better ideas, help would be > appreciated. > > On Dec 1, 2009 1:27 PM, "Aleksander Demko" wrote: > > I can't seem to get FindGTK2 working under a Mac. I've installed the > latest shipping library for mac from gtk.org, and even with a > CMakeLists.txt file that has nothing but "FIND_PACKAGE(GTK2)", I get > the following errors: > > > CMake Error at /Applications/CMake > 2.8-0.app/Contents/share/cmake-2.8/Modules/FindGTK2.cmake:93 (file): > file Internal CMake error when trying to open file: > /Library/Frameworks/Gtk.framework/Headers/gtk/gtk/gtkversion.h for reading. > Call Stack (most recent call first): > /Applications/CMake > 2.8-0.app/Contents/share/cmake-2.8/Modules/FindGTK2.cmake:467 > (_GTK2_GET_VERSION) > CMakeLists.txt:2 (FIND_PACKAGE) > > > -- Some or all of the gtk libraries were not found. (missing: > GTK2_GTK_LIBRARY GTK2_GLIB_LIBRARY GTK2_GDK_LIBRARY) > > There seems to be one extra gtk/ in the above path. I'm new to mac > development, but it seems there are some interesting path > manipulations that are done when searching for header files in > framework directories. I'm just not sure how to go about fixing this. > > Any ideas would be super. > > Thanks! > ___ > Powered by www.kitware.com > > Visit other Kitware open-source projects at > http://www.kitware.com/opensource/opensource.html > > Please keep messages on-topic and check the CMake FAQ at: > http://www.cmake.org/Wiki/CMake_FAQ > > Follow this link to subscribe/unsubscribe: > http://www.cmake.org/mailman/listinfo/cmake > ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
[CMake] Intel Compiler with OSX 10.6
Hello, It appear the following file is out of date: CMake/Modules/Platform/Darwin-icc.cmake I have just starting using the Intel Compiler on my apple. It appear that this file is very 10.4 specific, in that it does not set a lot of variable unless we are running 10.4. Specifically I noticed that I am not getting any optimization or debug compiler flags. I built a quick experimental build, which makes me think that things are functioning: http://www.cdash.org/CDash/buildSummary.php?buildid=483919 I am not familiar with these platform configuration files, nor the details of the differences of OS X compilers as I have always just let cmake handle it :) Any help would be appreciated. Brad Bradley Lowekamp Lockheed Martin Contractor for Office of High Performance Computing and Communications National Library of Medicine blowek...@mail.nih.gov ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] cmake 2.8.0, FindGTK2 on mac
Hi, I wrote FindGTK2. You might try removing the "gtk/" from line 350? Line 345 where the include path is searched for may also need to be modified... I don't have a MAC so if anyone has any better ideas, help would be appreciated. On Dec 1, 2009 1:27 PM, "Aleksander Demko" wrote: I can't seem to get FindGTK2 working under a Mac. I've installed the latest shipping library for mac from gtk.org, and even with a CMakeLists.txt file that has nothing but "FIND_PACKAGE(GTK2)", I get the following errors: CMake Error at /Applications/CMake 2.8-0.app/Contents/share/cmake-2.8/Modules/FindGTK2.cmake:93 (file): file Internal CMake error when trying to open file: /Library/Frameworks/Gtk.framework/Headers/gtk/gtk/gtkversion.h for reading. Call Stack (most recent call first): /Applications/CMake 2.8-0.app/Contents/share/cmake-2.8/Modules/FindGTK2.cmake:467 (_GTK2_GET_VERSION) CMakeLists.txt:2 (FIND_PACKAGE) -- Some or all of the gtk libraries were not found. (missing: GTK2_GTK_LIBRARY GTK2_GLIB_LIBRARY GTK2_GDK_LIBRARY) There seems to be one extra gtk/ in the above path. I'm new to mac development, but it seems there are some interesting path manipulations that are done when searching for header files in framework directories. I'm just not sure how to go about fixing this. Any ideas would be super. Thanks! ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] pgf90 error
Brad King wrote: > John Vines (CISD/CIV) wrote: >> pgf90-Error-Unknown switch: -rdynamic > > Due to some historic cruft this compiler is not supported on Linux right now. > In "Modules/Platform/Linux.cmake" comment out the line > > SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "-rdynamic") > > This is on our TODO list for 2.8.x but we didn't want to mess with the > widely used Linux.cmake platform file just before the 2.8.0 release. http://www.cmake.org/Bug/view.php?id=9985 -Brad ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
[CMake] cmake 2.8.0, FindGTK2 on mac
I can't seem to get FindGTK2 working under a Mac. I've installed the latest shipping library for mac from gtk.org, and even with a CMakeLists.txt file that has nothing but "FIND_PACKAGE(GTK2)", I get the following errors: CMake Error at /Applications/CMake 2.8-0.app/Contents/share/cmake-2.8/Modules/FindGTK2.cmake:93 (file): file Internal CMake error when trying to open file: /Library/Frameworks/Gtk.framework/Headers/gtk/gtk/gtkversion.h for reading. Call Stack (most recent call first): /Applications/CMake 2.8-0.app/Contents/share/cmake-2.8/Modules/FindGTK2.cmake:467 (_GTK2_GET_VERSION) CMakeLists.txt:2 (FIND_PACKAGE) -- Some or all of the gtk libraries were not found. (missing: GTK2_GTK_LIBRARY GTK2_GLIB_LIBRARY GTK2_GDK_LIBRARY) There seems to be one extra gtk/ in the above path. I'm new to mac development, but it seems there are some interesting path manipulations that are done when searching for header files in framework directories. I'm just not sure how to go about fixing this. Any ideas would be super. Thanks! ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] parallel builds (ctest_build() ) for dashboards ?
Sean McBride wrote: On 11/30/09 3:52 PM, Bill Hoffman said: David Cole wrote: In the script, prior to the ctest_build call, do: set(CTEST_BUILD_FLAGS -j4) (only works with make that supports -j, obviously...) We often do this in our scripts: set(CTEST_BUILD_COMMAND "make -j4 -i") MAKECOMMAND:STRING=/usr/bin/make -i -j4 Is that better/worse/equivalent to David's suggestion of: set(CTEST_BUILD_FLAGS -j4) ? Worse most likely. :) Both should work. -Bill ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
[CMake] New version of "Mastering CMake"
I read in a past post that Kitware (or the authors) has another edition planned for the book "Mastering CMake." I plan to recommend this text to people in my company for learning CMake, but I wanted to know how soon to expect the new edition in order to best advise people on which edition to purchase. Is there a timetable for releasing the new edition? If so, will you share when we can expect it? Thanks, Steve ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] non-set-able variables
I did not thoroughly test the CMAKE_CONFIGURATION_TYPES problem that I previously reported. I must have confused this problem with a similar problem that I encountered when I tried (and failed) to set CMAKE_BINARY_DIR when running the command-line cmake. I re-tested this problem and found that cmake is functioning properly. Thank you for your suggestions. Shane ___ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Is there a way to omit relative path from the name of the comilation output file ()?
Such a long path imposes several constrains/inconveniences: 1) It limits number of objects that could be passed to link command to ~1300 (which is OK with us for now). 2) It substantially increases the size and readability of the build log files. (hence makes it difficult to debug build problems) 3) We use build procedures that glob for object files (for example in order to clean orphan objects that are no longer listed in CMakeLists.txt). We'll have to use more complex logic in those procedures. Kind Regards, Alex Tarnopolsky -Original Message- From: Michael Wild [mailto:them...@gmail.com] Sent: Monday, November 30, 2009 10:50 PM To: Alexander Tarnopolsky Cc: CMake List Subject: Re: [CMake] Is there a way to omit relative path from the name of the comilation output file ()? Is it only the messages printed to the screen that you're concerned with? Michael On 30. Nov, 2009, at 18:39 , Alexander Tarnopolsky wrote: > Thanks for prompt response! > > The real reason for inclusion of those "external" sources is the > size of > our projects. > > We have read-only "shared/public" workarea were all the sources > reside. > The developer checks-out only the files that should be modified during > his current task (his source files are complemented with "public" > files > during the build). > > We try to avoid copying/duplication of a large number of files to > developer's workarea (which takes time/bandwidth, requires frequent > updates and raises chances for inconsistency). > > With the same rational we'd like to avoid copying of sources to > ${CMAKE_BINARY_DIR}. > > Kind Regards, > Alex Tarnopolsky > > > -Original Message- > From: Michael Wild [mailto:them...@gmail.com] > Sent: Monday, November 30, 2009 6:47 PM > To: Alexander Tarnopolsky > Cc: CMake List > Subject: Re: [CMake] Is there a way to omit relative path from the > name > of the comilation output file ()? > > Apart from me not liking this setup (those external sources should > probably be a separate project and be compiled as a library which then > is imported) you could use > CONFIGURE_FILE(/long/path/to/file ${CMAKE_BINARY_DIR}/file COPYONLY) > and then pass ${CMAKE_BINARY_DIR}/file to the add_executable/ > add_library calls. You could also wrap the latter commands in custom > macros/functions to scan a list of source files for out-of-source > sources and the automatically copy them to the build tree. > > Michael > > On 30. Nov, 2009, at 16:53 , Alexander Tarnopolsky wrote: > >> Dear CMake users list, >> >> In our build system we have to compile source files that reside out >> of >> source/build tree. In some cases there are several hundreds of such >> "external" sources in a project. >> >> Consider simplified CMakeLists.txt: >> === >> Project (system) >> >> set(SOURCES >> /users/gdadmin/PG41/project/src/library/system/AttachDebugger.cc >> /users/gdadmin/PG41/project/src/library/system/CPUInfo.cc >> DSOInfo.cc >> DSOManip.cc >> HelpControl.cc >> LocateExe.cc >> MksTemp.cc >> PathManip.cc >> PluginLoader.cc >> ProcessAffinity.cc >> RTTI.cc >> Setenv.cc >> ShellUtils.cc >> Sleep.cc >> SysTime.cc >> TraceStack.cc >> UserInfo.cc >> VTControl.cc >> Asm/CPUID_c.cc >> ) >> >> add_library (system SHARED ${SOURCES}) >> === >> >> The compilation of the first source produces the following output >> file: >> "CMakeFiles/system.dir/users/gdadmin/PG41/project/src/library/system/ >> Att >> achDebugger.cc.o" >> >> Imagine a link command where several hundreds of object files are >> listed >> with this relative path... >> >> Thus we are looking for a way to shorten the path. Ideally - we'd >> like >> to generate compiled objects under the same flat-directory >> regardless of >> the source file location. >> >> I understand that ""CMakeFiles/system.dir" part of the relative path >> to >> object files cannot be changed - I hope we can handle this. >> >> But is there a way to change >> "/users/gdadmin/PG41/project/src/library/system" part? >> >> I experimented with CMAKE_CXX_COMPILE_OBJECT rule-variable and tried >> to >> replace the with something else, but apparently the >> rule-command is invoked always when file is missing, >> probably >> the dependency between and drives the rule-command. >> >> Of course there is a possibility to compile objects by a custom >> command >> and to manage object's dependencies by a script etc.. However we >> don't >> like to give up on cmake built-in rules for compilation and >> dependency >> tracking. >> >> Thanks in advance for your help, >> Kind Regards, >> Alex Tarnopolsky >> > > --- >> This e-mail, including any attached files, may contain confidential >> and privileged information for the sole use of the intended >> recipient. Any review, use, distribution, or disclosure by others is >> strictly prohibited. If