Re: [CMake] CMake and CTest for Google tests
Hi Fraser, That's a great suggestion! Thank you for the script. It appears that CMake has support for GTESTS in CMake 2.8.2 which uses a macro, very similar to yours. http://public.kitware.com/cgibin/viewcvs.cgi/Modules/FindGTest.cmake?rev ision=1.4&root=CMake&view=markup Thanks again! Neelima From: Fraser Hutchison [mailto:fraser.hutchi...@googlemail.com] Sent: Thursday, August 26, 2010 2:28 AM To: Neelima Mehdiratta Cc: cmake@cmake.org Subject: Re: [CMake] CMake and CTest for Google tests Hi Neelima, If you're building the test executable(s) using CMake already and assuming you have a variable like ${GTEST_SOURCE_FILES} which is a list of all your test source files, you could probably get away without using a script to generate a list of names by doing something like: FOREACH(GTEST_SOURCE_FILE ${GTEST_SOURCE_FILES}) FILE(STRINGS ${GTEST_SOURCE_FILE} GTEST_NAMES REGEX ^TEST) FOREACH(GTEST_NAME ${GTEST_NAMES}) STRING(REGEX REPLACE ["\) \(,"] ";" GTEST_NAME ${GTEST_NAME}) LIST(GET GTEST_NAME 1 GTEST_GROUP_NAME) LIST(GET GTEST_NAME 3 GTEST_NAME) ADD_TEST(${GTEST_GROUP_NAME}.${GTEST_NAME} ${EXECUTABLE_OUTPUT_PATH}/${BIN_NAME} --gtest_filter=${GTEST_GROUP_NAME}.${GTEST_NAME}) ENDFOREACH() ENDFOREACH() This relies on the tests each being defined by the Gtest macro TEST(test fixture, test name) or TEST_F(test fixture, test name) in the source files, but it would avoid the need to have the test executable built before running the ADD_TEST command. Cheers, Fraser. On 25/08/2010 11:17 PM, Neelima Mehdiratta wrote: I am using Google Tests to create unit tests for our software. We are using CMake (version 4.6-patch 2) for building the unit tests executable. Since the list of unit tests is expected to grow to thousands of tests, I am looking for a way to automate creating a file (say testlist) on the fly that will contain the list of all our unit tests specified using the CTest ADD_TEST command. My thought was to use INCLUDE(testlist) to read in the list of tests at the appropriate point in the CMakeLists.txt file(i.e, just after calling ENABLE_TESTING(). I have a shell (bash) script (addtestscrpt) that needs to run the unit tests executable to get the list of all unit tests and then put ADD_TEST for each of those tests into a file which would look like this: ADD_TEST(DDSCfgTest.ctr ${EXECUTABLE_OUTPUT_PATH}/${BIN_NAME} --gtest_filter=DDSCfgTest.ctr) ADD_TEST(DDSCfgTest.ReadBool ${EXECUTABLE_OUTPUT_PATH}/${BIN_NAME} --gtest_filter=DDSCfgTest.ReadBool) ADD_TEST(DDSCfgTest.ReadInt ${EXECUTABLE_OUTPUT_PATH}/${BIN_NAME} --gtest_filter=DDSCfgTest.ReadInt) The problem that I'm having is that I need the unit tests executable to generate the list of all tests and then INCLUDE the list in a CMakeList.txt file after the unit tests executable is built. I tried using ADD_CUSTOM_COMMAND with POST_BUILD to run my shell script (COMMAND ./addtestscript) which runs and creates the list of ADD_TEST() commands and puts them in a file. But I don't know how to include this file in the ADD_CUSTOM_COMMAND The closest I got was: ADD_CUSTOM_COMMAND(TARGET ${BIN_NAME} POST_BUILD WORKING_DIRECTORY ${SRC_DIR} COMMAND bash ./addtestscrpt COMMAND ${CMAKE_COMMAND} ${SRC_DIR}/DDSCommonTests/CMakeLists.txt ) where ${SRC_DIR}/DDSCommonTests/CMakeLists.txt contains ENABLE_TESTING() INCLUDE(${SRC_DIR)/testlist) but this doesn't work presumably because CTest needs to know about the CTestTestfile.cmake in this directory, again in the post_build step. Is there any way to a) Add the INCLUDE(testlist) to the ADD_CUSTOM_COMMAND or b) tell CTest to read the CTestTestfile.cmake from that directory or c) Any other way of solving this? 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] CMake and CTest for Google tests (Chris Hillery)
Hi Chris, Your suggestion to "generate testlist.cmake in your build directory and then re-run cmake" worked with some tweaking. Thank you!! Neelima Message: 3 Date: Wed, 25 Aug 2010 18:31:46 -0700 From: Chris Hillery Subject: Re: [CMake] CMake and CTest for Google tests To: Neelima Mehdiratta Cc: cmake@cmake.org On Wed, Aug 25, 2010 at 3:17 PM, Neelima Mehdiratta wrote: > ADD_CUSTOM_COMMAND(TARGET ${BIN_NAME} > > POST_BUILD > > WORKING_DIRECTORY ${SRC_DIR} > > COMMAND bash ./addtestscrpt > > COMMAND ${CMAKE_COMMAND} ${SRC_DIR}/DDSCommonTests/CMakeLists.txt > > ) > > I'm not sure, but I think you're very close to the right answer here. The problem with the above COMMAND is that it doesn't quite make sense - you can't specify a CMakeLists.txt file as an argument to CMake; it's not a scripting language in that sense, at least when it's doing build-tree configuration. I think what you should do is the following. In your top-level CMakeLists.txt, have something like IF (EXISTS ${CMAKE_BINARY_DIR}/testlist.cmake) INCLUDE (${CMAKE_BINARY_DIR}/testlist.cmake) ENDIF (EXISTS ${CMAKE_BINARY_DIR}/testlist.cmake) and then change your custom to command to generate testlist.cmake in your build directory and then re-run cmake: ADD_CUSTOM_COMMAND(TARGET ${CMAKE_BINARY_DIR}/testlist.cmake POST_BUILD WORKING_DIRECTORY ${CMAKE_BINARY_DIR} COMMAND bash addtestscript COMMAND ${CMAKE_COMMAND} ${CMAKE_SOURCE_DIR} ) You'll need to tweak the invocation of addtestscript to successfully generate testlist.cmake in the build directory, and then I think it'll all work. Ceej aka Chris Hillery ___ 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] several questions about cmake
On 08/26/2010 05:38 PM, Mark Roden wrote: >>> 2) I'm trying to check to see if a certain C++ code chunk will >>> compile. The line is: >>> >>> CHECK_CXX_SOURCE_COMPILES(" >>> #include >>> #include >>> void main(){ >>> char buf[100]; >>> char buf2[100]; >>> strncpy(buf2, buf, 5); >>> buf2[5] = '\0'; >>> puts(buf2); >>> }" EXTERN_C) >>> >>> The EXTERN_C test is failing here. The problem is, I can cut and >>> paste that code into a blank project in vs2008 and it compiles just >>> fine. Is there a way to see the compiler error, or to determine why >>> that would fail? >>> >>> The code in the configure.in file is: >>> >>> AC_TRY_LINK([ >>> # include >>> # include >>> ], [ >>> char buf[100]; >>> strcpy(buf, "Hello world\n"); >>> ], >>> bz_cv_cplusplus_needexternCwrapper=no, >>> bz_cv_cplusplus_needexternCwrapper=yes) >>> ]) >>> >>> I can't use that directly (or can I?) because the quotation marks in >>> "Hello World" prematurely cut off the code in the SOURCE section of >>> CHECK_CXX_SOURCE_COMPILES, and I get an error that the variable World" >>> makes no sense. >> >> Just put \ in front of the quotation marks, and the hello world code will >> work. > > That's not my point. The code I gave has no double quotes in it, and > it still doesn't compile properly, but it does compile and work in a > visual studio environment. > If I do: > > CHECK_CXX_SOURCE_COMPILES(" > #include > #include > void main(){ > char buf[100]; > strcpy(buf, \"Hello world\n\"); > }" EXTERN_C) > > I get > > Performing Test EXTERN_C > Performing Test EXTERN_C - Failed > > But that code compiles in an empty vs2008 project. > > How can I get the compiler error? I don't see why this code test should > fail. You need to escape the newline in the string literal four-fold, i.e. \"Hello worldn\". Moreover, "void" isn't allowed as the return type of main() in C++, use "int" instead. Regards, Michael ___ 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] VS2010 + Intel Fortran (CompilerPro) 12
On Thu, Aug 26, 2010 at 5:18 AM, Biddiscombe, John A. wrote: > I tried and failed to generate working project files for the Fortran 12 > compiler with Visual Studio 2010. (NMake works ok) > > > > Has anyone else tried with success ? > > > > If not ... is there any possibility of CMake Developers targeting the New > Intel tool suite in the near future? > > > > I’d like to have a go at creating a generator for the Fortran projects, but > it’d probably take me too long to be of use with my current projects. > > > > Just hoping that someone out there is already fixing it. > > Nobody is working on this right now. The original Fortran VS integration was paid for by a support contract with Kitware. Of course VS 2010 changes all of that, and requires some new code. I don't even have that compiler here at Kitware. If you were to create a patch and run a dashboard that would be great. :) It might not be that hard... -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
Re: [CMake] several questions about cmake
>> 1) The default install directory on Windows is C:\Program Files, or >> C:\Program Files (x86) on 64 bit. ?This default will not work on >> Windows 7 (and perhaps Vista), because the user isn't running as >> administrator anymore, and only administrators can modify that >> directory. ?There should probably be a warning to that effect on >> windows systems; otherwise, there are painful ways to run install, but >> they are painful. > >Most developers run as administrator so I don't think there should be a >warning. As a matter of fact, most developers do NOT run as administrator on Win7 and Vista; default users start with a split security token and you have to elevate permissions to write to the 'program files' directory. The only way around this is to turn off UAC; that's an individual decision whether one feels safe doing that. I would also like to see the default install directory for cmake change. In the meantime, I have my cmake script itself change the default: # On windows, it's convenient to change the default install prefix such that it does NOT point to 'program files' if( WIN32 AND CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT ) set( CMAKE_INSTALL_PREFIX "${PROJECT_BINARY_DIR}/install" CACHE PATH "Install path prefix, prepended onto install directories" FORCE ) endif( ) ___ 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] several questions about cmake
On 08/26/2010 09:45 AM, John Drescher wrote: On Thu, Aug 26, 2010 at 6:47 AM, Hickel, Kelly wrote: -Original Message- From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf Of Mike McQuaid Sent: Thursday, August 26, 2010 1:12 AM To: Mark Roden Cc: cmake@cmake.org Subject: Re: [CMake] several questions about cmake On 26 August 2010 01:34, Mark Roden wrote: I'm starting to get deep into CMake, and I have a few questions as I try to convert the socket++ library such that it can be compiled by CMake on Windows. 1) The default install directory on Windows is C:\Program Files, or C:\Program Files (x86) on 64 bit. This default will not work on Windows 7 (and perhaps Vista), because the user isn't running as administrator anymore, and only administrators can modify that directory. There should probably be a warning to that effect on windows systems; otherwise, there are painful ways to run install, but they are painful. Most developers run as administrator so I don't think there should be a warning. In Windows 7 and Windows 2008 server, being logged in as a user in the Administrators group is not sufficient, you have to elevate the privs of your process to write in those directories. Another possibility is turning off UAC all together. So the warning might still be a good idea. I agree. Installing on these systems even as administrator to the default location C:\Program Files\ fails. I usually have CMake install elsewhere by changing the CMAKE_INSTALL_PREFIX Interesting.. because on Unix systems the default is /usr/local which also requires elevated privileges. Clint ___ 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] several questions about cmake
On Thu, Aug 26, 2010 at 6:47 AM, Hickel, Kelly wrote: > > >> -Original Message- >> From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On >> Behalf Of Mike McQuaid >> Sent: Thursday, August 26, 2010 1:12 AM >> To: Mark Roden >> Cc: cmake@cmake.org >> Subject: Re: [CMake] several questions about cmake >> >> On 26 August 2010 01:34, Mark Roden wrote: >> > I'm starting to get deep into CMake, and I have a few questions as I >> > try to convert the socket++ library such that it can be compiled by >> > CMake on Windows. >> > >> > 1) The default install directory on Windows is C:\Program Files, or >> > C:\Program Files (x86) on 64 bit. This default will not work on >> > Windows 7 (and perhaps Vista), because the user isn't running as >> > administrator anymore, and only administrators can modify that >> > directory. There should probably be a warning to that effect on >> > windows systems; otherwise, there are painful ways to run install, >> but >> > they are painful. >> >> Most developers run as administrator so I don't think there should be a >> warning. >> > > In Windows 7 and Windows 2008 server, being logged in as a user in the > Administrators > group is not sufficient, you have to elevate the privs of your process to > write in those directories. > Another possibility is turning off UAC all together. > > So the warning might still be a good idea. > I agree. Installing on these systems even as administrator to the default location C:\Program Files\ fails. I usually have CMake install elsewhere by changing the CMAKE_INSTALL_PREFIX John ___ 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] several questions about cmake
On Wed, Aug 25, 2010 at 11:17 PM, Michael Wild wrote: > > On 26. Aug, 2010, at 1:34 , Mark Roden wrote: > >> I'm starting to get deep into CMake, and I have a few questions as I >> try to convert the socket++ library such that it can be compiled by >> CMake on Windows. >> > > Cool! Thanks, I think so to :) > >> 1) The default install directory on Windows is C:\Program Files, or >> C:\Program Files (x86) on 64 bit. This default will not work on >> Windows 7 (and perhaps Vista), because the user isn't running as >> administrator anymore, and only administrators can modify that >> directory. There should probably be a warning to that effect on >> windows systems; otherwise, there are painful ways to run install, but >> they are painful. > > I hope you will create an installer using CPack, and most users will then use > that instead of compiling from sources, so IMHO that is no real problem. I generally intend to create an installer using WiX, mainly out of ignorance of CPack and extensive experience using WiX. Not that WiX is better-- it has some serious usability problems-- but it integrates nicely with visual studio. However, I'm more talking about when I run CMake to install on my own machine. My work paradigm runs like this: 1) get all the libraries I need 2) compile them all 3) put the libraries and headers into a file 4) make my own project in visual studio 5) reference those libraries and headers in my project Why not put it all into CMake, I hear you cry? A few reasons: 1) For the longest time (and still ongoing), the gdcm version in itk doesn't match the latest greatest from gdcm. There is a compiler switch to use 'system gdcm', whatever that means on Windows, but other projects I have require the 1.2 branch in itk. So I can (and do) have multiple versions of itk to account for this, and so need to ensure I reference the right one. 2) I'm generally not messing directly with the libraries I install via cmake, I just compile against them and use provided functions. Going through the cmakelists process is not helpful when I'm just using the libraries as is. When I modify the libraries, then I use CMake, because that's the way these libraries come. 3) Since I don't want to recompile the libraries on multiple machines, I just check in the results of running the installation into source control. This works great when you're deploying on windows; everything compiles and builds on one machine will work on another, so reproducing my dev environment, either for a coworker or for myself on another machine, is much simpler and saves more time than getting the source, making sure it's the same source as what I started with, and rebuilding again. So, yes, a warning would be very nice, given the way that I use the installation option in CMake. > >> >> 2) I'm trying to check to see if a certain C++ code chunk will >> compile. The line is: >> >> CHECK_CXX_SOURCE_COMPILES(" >> #include >> #include >> void main(){ >> char buf[100]; >> char buf2[100]; >> strncpy(buf2, buf, 5); >> buf2[5] = '\0'; >> puts(buf2); >> }" EXTERN_C) >> >> The EXTERN_C test is failing here. The problem is, I can cut and >> paste that code into a blank project in vs2008 and it compiles just >> fine. Is there a way to see the compiler error, or to determine why >> that would fail? >> >> The code in the configure.in file is: >> >> AC_TRY_LINK([ >> # include >> # include >> ], [ >> char buf[100]; >> strcpy(buf, "Hello world\n"); >> ], >> bz_cv_cplusplus_needexternCwrapper=no, >> bz_cv_cplusplus_needexternCwrapper=yes) >> ]) >> >> I can't use that directly (or can I?) because the quotation marks in >> "Hello World" prematurely cut off the code in the SOURCE section of >> CHECK_CXX_SOURCE_COMPILES, and I get an error that the variable World" >> makes no sense. > > Just put \ in front of the quotation marks, and the hello world code will > work. That's not my point. The code I gave has no double quotes in it, and it still doesn't compile properly, but it does compile and work in a visual studio environment. If I do: CHECK_CXX_SOURCE_COMPILES(" #include #include void main(){ char buf[100]; strcpy(buf, \"Hello world\n\"); }" EXTERN_C) I get Performing Test EXTERN_C Performing Test EXTERN_C - Failed But that code compiles in an empty vs2008 project. How can I get the compiler error? I don't see why this code test should fail. > > >> >> 3) There is a check for the presence of the Libg++ library, but no >> specific mention of which function is needed. According to what I can >> find on CheckLibraryExists, I need to provide a specific function to >> determine if that library is present. The code in configure.in is: >> >> AC_CHECK_HEADER(_G_config.h, AC_DEFINE(_S_LIBGXX)) >> >> In that case, should I be looking for a particular function in >> _G_config.h (which I don't have, since I'm on Windows) and just using >> it arbitrarily? I'm not even close to the point where this code can >> fail in compilation
Re: [CMake] Running a command after generation of Makefile
On 8/26/2010 4:00 AM, Johny wrote: SET(CMAKE_INCLUDE_SYSTEM_FLAG_C) SET(CMAKE_INCLUDE_SYSTEM_FLAG_CXX) Can you try: SET(CMAKE_INCLUDE_SYSTEM_FLAG_C "-isystem") SET(CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-isystem") -- Bill Hoffman Kitware, Inc. 28 Corporate Drive Clifton Park, NY 12065 bill.hoff...@kitware.com http://www.kitware.com 518 881-4905 (Direct) 518 371-3971 x105 Fax (518) 371-4573 ___ 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] several questions about cmake
> -Original Message- > From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On > Behalf Of Mike McQuaid > Sent: Thursday, August 26, 2010 1:12 AM > To: Mark Roden > Cc: cmake@cmake.org > Subject: Re: [CMake] several questions about cmake > > On 26 August 2010 01:34, Mark Roden wrote: > > I'm starting to get deep into CMake, and I have a few questions as I > > try to convert the socket++ library such that it can be compiled by > > CMake on Windows. > > > > 1) The default install directory on Windows is C:\Program Files, or > > C:\Program Files (x86) on 64 bit. This default will not work on > > Windows 7 (and perhaps Vista), because the user isn't running as > > administrator anymore, and only administrators can modify that > > directory. There should probably be a warning to that effect on > > windows systems; otherwise, there are painful ways to run install, > but > > they are painful. > > Most developers run as administrator so I don't think there should be a > warning. > In Windows 7 and Windows 2008 server, being logged in as a user in the Administrators group is not sufficient, you have to elevate the privs of your process to write in those directories. Another possibility is turning off UAC all together. So the warning might still be a good idea. -Kelly ___ 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] VS2010 + Intel Fortran (CompilerPro) 12
I tried and failed to generate working project files for the Fortran 12 compiler with Visual Studio 2010. (NMake works ok) Has anyone else tried with success ? If not ... is there any possibility of CMake Developers targeting the New Intel tool suite in the near future? I'd like to have a go at creating a generator for the Fortran projects, but it'd probably take me too long to be of use with my current projects. Just hoping that someone out there is already fixing it. JB ___ 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] Different configurations with Visual Studio
On 26 August 2010 10:17, Mark Van Peteghem wrote: > We do have different build folders for each compiler / ide, but I mean > 'build folder' as the folder where the object files and executable ends. We > just want one project file with different platform solutions, so we don't > have to reload the project file when we want to switch. Having two project > files in the same solution also is not an option, because the source files > and many settings are the same. Besides, this is a big solution file with > over 50 project files, so doubling that would make things a lot harder. > > I don't really understand why some find this an awkward way of doing things, > it is simply convenient to have both platforms in one project file, e.g. it > is easy to build everything at once. I don't see any drawbacks. In that case, use various if/else statements depending on your platform and just use a different build directory for each platform, then each will have a different build folder but also a different CMake cache so the variables will be parsed differently. -- Cheers, Mike McQuaid http://mikemcquaid.com/ ___ 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] Different configurations with Visual Studio
2010/7/5 John Drescher > > I see, thanks. I intend to write a Python script that adds the extra > > platform solution, because we really need that. Visual Studio and > > Code::Blocks project files are XML files, so it shouldn't be too hard. > > > > What is wrong with different build folders for each compiler / ide? > (sorry for picking this up again so late) We do have different build folders for each compiler / ide, but I mean 'build folder' as the folder where the object files and executable ends. We just want one project file with different platform solutions, so we don't have to reload the project file when we want to switch. Having two project files in the same solution also is not an option, because the source files and many settings are the same. Besides, this is a big solution file with over 50 project files, so doubling that would make things a lot harder. I don't really understand why some find this an awkward way of doing things, it is simply convenient to have both platforms in one project file, e.g. it is easy to build everything at once. I don't see any drawbacks. Mark ___ 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] Running a command after generation of Makefile
I do not want all the include flags to be isystem, only one. I'm using cmake version 2.8.2 Cheers, Johny On 08/25/2010 09:46 PM, Bill Hoffman wrote: On Wed, Aug 25, 2010 at 3:01 PM, Michael Wild wrote: On 25. Aug, 2010, at 18:57 , Johny wrote: Hey, I was trying to use the SYSTEM option in the include_directories command , however it does not seem to work on the MACOSX platform. So i wrote a little fix which basically replaces all the -I${foldername} with -isystem ${foldername}. However these commands need to be executed after my makefiles are generated and i wud like to not have the user execute another cmake script before running make. Is it possible? Cheers, Johny If you want *all* -I to be replaced by -isystem, simply set the CMAKE_INCLUDE_FLAG_C and CMAKE_INCLUDE_FLAG_CXX variables to -isystem. Michael What version of CMake? Platforms/Darwin.cmake has this in git master: # Xcode does not support -isystem yet. IF(XCODE) SET(CMAKE_INCLUDE_SYSTEM_FLAG_C) SET(CMAKE_INCLUDE_SYSTEM_FLAG_CXX) ENDIF(XCODE) I seem to remember it doing that by default in older versions... -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