Re: [cmake-developers] Targets for FindGTK2.cmake
Hello Philip, Thanks for your comments. On 06/08/13 05:43, Philip Lowman wrote: I'm not sure if there is a way to develop automated unit tests and mark them to not run by default. That would be useful for regression testing of modules even if it the tests had to be run manually. I added a commit introducing a couple of unit tests that should run only if GTK and/or GTKMM are available on the system. Regards, Daniele -- 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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
Re: [cmake-developers] Suspicious Clang versions
On 08/05/2013 03:45 PM, Brad King wrote: One of the main purposes of the compiler id is to load platform modules like Platform/os-id-lang and Compiler/id-lang. Most of the information in these files will be identical across the upstream and vendor-specific Clang distributions so having a separate compiler id may lead to confusion and duplication. Another approach is to introduce a CMAKE_LANG_COMPILER_VENDOR variable to name the vendor (or _VARIANT?). On second thought adding yet another dimension to the compiler identification is just more complexity. We can use a separate compiler id for each variant and simply have the platform information modules for each vendor include the upstream one. -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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
Re: [cmake-developers] CMake is slow for project with hundred target and one command with large number of dependencies
Hi Brad, I have force-pushed all the fixes you've asked for: * I taught cmMakefile copy-ctor * I re-write the test so that it is part of CMakeOnly sub-test suite. I also make it more robust to machine load by increasing the number of targets. This way the performance gap between the logarithmic version and the linear version is bigger. On my machine the logarithmic version run in 60sec whereas the linear version had not finished after 10min. The timeout is at 90sec now. When running the whole test suite in parallel with 8 jobs it passes. * I added a test covering the issue I got while testing the previous buggy version of the optimized algorithm. This is a very weird bug. Master does not suffer from it, neither this topic branch. Basically the previous version had problem with empty dependency and it was not covered by the test suite. I think there is something else involved in this test case because the test file named 0 is important too. At least the test is here now and we could investigate that later if it fails again. Let me know what do you think. Thanks, -Nico On Mon, Aug 5, 2013 at 10:50 PM, Brad King brad.k...@kitware.com wrote: On 08/05/2013 04:37 PM, Nicolas Desprès wrote: * Why is special logic in Tests/CMakeLists.txt needed to add the test case? Since it is a performance test on configuration phase only, I need a specific timeout value and to run cmake only Take a look at the Tests/RunCMake and Tests/CMakeOnly groups of tests. They are for running CMake without building. -Brad -- Nicolas Desprès -- 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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
[cmake-developers] Module.GenerateExportHeader test is sloooow
Anyone know why Module.GenerateExportHeader is so slow: http://open.cdash.org/testSummary.php?project=1name=Module.GenerateExportHeaderdate=2013-08-06 On the slowest build it takes 14 minutes to run. The kwsys test which builds a whole library and does a dashboard submission is faster... -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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
Re: [cmake-developers] CMake is slow for project with hundred target and one command with large number of dependencies
On 08/06/2013 09:40 AM, Nicolas Desprès wrote: I have force-pushed all the fixes you've asked for: Great, thanks! * I taught cmMakefile copy-ctor Good. * I re-write the test so that it is part of CMakeOnly sub-test suite. I also make it more robust to machine load by increasing the number of targets. This way the performance gap between the logarithmic version and the linear version is bigger. On my machine the logarithmic version run in 60sec whereas the linear version had not finished after 10min. The timeout is at 90sec now. When running the whole test suite in parallel with 8 jobs it passes. Okay. Timing-dependent tests have been frequently sporadic on our test infrastructure because the machines are often busy with other projects' tests and there is a wide variety of machine speeds available. We'll see how it goes. * I added a test covering the issue I got while testing the previous buggy version of the optimized algorithm. This is a very weird bug. Master does not suffer from it, neither this topic branch. Basically the previous version had problem with empty dependency and it was not covered by the test suite. I think there is something else involved in this test case because the test file named 0 is important too. At least the test is here now and we could investigate that later if it fails again. It looks like + add_test_macro(EmptyDepAndZeroOutput +${CMAKE_CMAKE_COMMAND} -P check.cmake) appears twice, once in each test addition commit. While hunting down all the call sites for GetSourceFileWithOutput I found two that are not needed and removed them: http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=eccb39d7 Please rebase your topic on that. I still can't convince myself that the comparison function is correct. Also as Steve suggested it will be faster to use a standard ordering function. That should work if we always use it with full paths. The expected use cases always use full paths and it is only for backward compatibility that we support the path suffix magic. Therefore I think the best approach is to optimize the common (full-path) case with a direct lookup, perhaps even with cmsys/hash_map.hxx. Only when the input path is relative should we fall back to the linear suffix search for compatibility. Thanks, -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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
Re: [cmake-developers] CMake is slow for project with hundred target and one command with large number of dependencies
On Tue, Aug 6, 2013 at 4:31 PM, Brad King brad.k...@kitware.com wrote: On 08/06/2013 09:40 AM, Nicolas Desprès wrote: I have force-pushed all the fixes you've asked for: Great, thanks! * I taught cmMakefile copy-ctor Good. * I re-write the test so that it is part of CMakeOnly sub-test suite. I also make it more robust to machine load by increasing the number of targets. This way the performance gap between the logarithmic version and the linear version is bigger. On my machine the logarithmic version run in 60sec whereas the linear version had not finished after 10min. The timeout is at 90sec now. When running the whole test suite in parallel with 8 jobs it passes. Okay. Timing-dependent tests have been frequently sporadic on our test infrastructure because the machines are often busy with other projects' tests and there is a wide variety of machine speeds available. We'll see how it goes. Sure. * I added a test covering the issue I got while testing the previous buggy version of the optimized algorithm. This is a very weird bug. Master does not suffer from it, neither this topic branch. Basically the previous version had problem with empty dependency and it was not covered by the test suite. I think there is something else involved in this test case because the test file named 0 is important too. At least the test is here now and we could investigate that later if it fails again. It looks like + add_test_macro(EmptyDepAndZeroOutput +${CMAKE_CMAKE_COMMAND} -P check.cmake) appears twice, once in each test addition commit. Oups. Squashing error. Fixed now. While hunting down all the call sites for GetSourceFileWithOutput I found two that are not needed and removed them: http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=eccb39d7 Please rebase your topic on that. I still can't convince myself that the comparison function is correct. Also as Steve suggested it will be faster to use a standard ordering function. That should work if we always use it with full paths. The expected use cases always use full paths and it is only for backward compatibility that we support the path suffix magic. Therefore I think the best approach is to optimize the common (full-path) case with a direct lookup, perhaps even with cmsys/hash_map.hxx. Only when the input path is relative should we fall back to the linear suffix search for compatibility. Good idea! I should have done that in the first place it would have save me a lot of effort understanding the old behavior. The test suite passes on my computer. I have force-pushed again. However I had one problem with BootstrapTest when trying to use cmsys::hash_map. I pushed by work so far on this topic in another branch ( https://github.com/nicolasdespres/CMake/commits/topic/use-cmsys-hash_map): https://github.com/nicolasdespres/CMake/commit/1437d51a87b5a5a131b3829210710734266d29cc I did not succeed to teach the bootstrap script how to include cstddef. Cheers, -- Nicolas Desprès -- 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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
Re: [cmake-developers] CMake is slow for project with hundred target and one command with large number of dependencies
On 08/06/2013 12:18 PM, Nicolas Desprès wrote: The test suite passes on my computer. I have force-pushed again. Great. In this hunk: + // If the queried path is not absolute we use the backward compatible + // version. The search algorithm is linear. + if (cname[0] != '/') Use cmSystemTools::FileIsFullPath to detect a full path in a way that works on Windows too. However I had one problem with BootstrapTest when trying to use cmsys::hash_map During bootstrap we can just use normal std::map. Squash the patch below into your topic/use-cmsys-hash_map (and then into the original topic). -Brad diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h index e51d9c6..f00f47b 100644 --- a/Source/cmMakefile.h +++ b/Source/cmMakefile.h @@ -29,7 +29,9 @@ #include cmsys/auto_ptr.hxx #include cmsys/RegularExpression.hxx -#include cmsys/hash_map.hxx +#if defined(CMAKE_BUILD_WITH_CMAKE) +# include cmsys/hash_map.hxx +#endif class cmFunctionBlocker; class cmCommand; @@ -1049,7 +1051,11 @@ private: cmSourceFile *LinearGetSourceFileWithOutput(const char *cname); // A map for fast output to input look up. +#if defined(CMAKE_BUILD_WITH_CMAKE) typedef cmsys::hash_mapstd::string, cmSourceFile* OutputToSourceMap; +#else + typedef std::mapstd::string, cmSourceFile* OutputToSourceMap; +#endif OutputToSourceMap OutputToSource; void UpdateOutputToSourceMap(const std::vectorstd::string outputs, diff --git a/bootstrap b/bootstrap index 9e6bfad..afb66e5 100755 --- a/bootstrap +++ b/bootstrap @@ -304,8 +304,6 @@ KWSYS_CXX_SOURCES=\ KWSYS_FILES=\ auto_ptr.hxx \ Directory.hxx \ - hash_map.hxx \ - hashtable.hxx \ Glob.hxx \ Process.h \ RegularExpression.hxx \ -- 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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
Re: [cmake-developers] CMake is slow for project with hundred target and one command with large number of dependencies
On 08/06/2013 12:44 PM, Brad King wrote: On 08/06/2013 12:18 PM, Nicolas Desprès wrote: The test suite passes on my computer. I have force-pushed again. Great. I had to modify the test like this: -DEPENDS bottle_neck +DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/bottle_neck in order to ensure the optimization is used for the test to finish within the timeout. Also the test does not work well on Windows because the filesystem is very slow to deal with a large number of files and directories. Even removing creation of the input_${i} files the 1000 output-target build makefiles take forever to write. IMO it is not worth the effort to establish this test. We have no performance tests elsewhere and it is unlikely this will regress. The way the lookup is done with your patches is the way it should have been done originally. -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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
Re: [cmake-developers] CMake is slow for project with hundred target and one command with large number of dependencies
On 08/06/2013 01:30 PM, Brad King wrote: IMO it is not worth the effort to establish this test. I've applied a patch based on yours to implement the optimization and merged to 'next' for testing tonight: http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2268c41a -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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
Re: [cmake-developers] CMake is slow for project with hundred target and one command with large number of dependencies
On Tue, Aug 6, 2013 at 10:19 PM, Brad King brad.k...@kitware.com wrote: On 08/06/2013 01:30 PM, Brad King wrote: IMO it is not worth the effort to establish this test. I've applied a patch based on yours to implement the optimization and merged to 'next' for testing tonight: http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2268c41a Thank you very much for your help. I guess this topic is closed now. Sorry for not answering earlier. I was away from keyboard (time shift). I will delete my branches tomorrow. -Nico -- 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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
[cmake-developers] [CMake 0014342]: CMAKE_SYSTEM_PROCESS behaviour changed
The following issue has been SUBMITTED. == http://public.kitware.com/Bug/view.php?id=14342 == Reported By:Craig Scott Assigned To: == Project:CMake Issue ID: 14342 Category: CMake Reproducibility:always Severity: major Priority: normal Status: new == Date Submitted: 2013-08-06 23:11 EDT Last Modified: 2013-08-06 23:11 EDT == Summary:CMAKE_SYSTEM_PROCESS behaviour changed Description: The behaviour of the value of CMAKE_SYSTEM_PROCESSOR appears to have changed somewhere between 2.8.10.1 and 2.8.11.2. I build 32-bit apps on a 64-bit Windows 7 system and I use VS2008 (express version, no 64-bit compiler). With CMake 2.8.10.1, CMAKE_SYSTEM_PROCESSOR is reported to have the value x86, but with 2.8.11.2, now it has the value AMD64. I verified this with both versions of CMake and testing a trivial CMake project that simply prints the value of the variable. According to the CMake documentation, on the one hand, the value should have always been AMD64 since the documentation says it just pulls the value from the PROCESSOR_ARCHITECTURE environment variable. On the other hand, this conflicts with the statement that it should reflect the target architecture. I think x86 would be the correct value here rather than simply reporting whatever PROCESSOR_ARCHITECTURE says, since that environment variable is not going to always match the target architecture. == Issue History Date ModifiedUsername FieldChange == 2013-08-06 23:11 Craig ScottNew Issue == -- 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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
Re: [CMake] Fwd: cdash timing database
Hi Mathias, The test timing results are stored in the 'testmeasurement' table which contains for each test the 'WallTime' and 'CPUTime'. For CDash related questions, please post to the cd...@public.kitware.com mailing list. Thanks, Julien Original Message Subject: [CMake] cdash timing database Date: Mon, 29 Jul 2013 11:04:51 +0200 From: Mathias Bavay ba...@slf.ch To: CMake@cmake.org Hi! Since the test timing results as shown on cdash are stored in a database, I was wondering if I could manually extract them from the database. In which tables are these results stored? Or more generally, what should I do to get the raw tests timing out of the database? Thanks! Mathias -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Where is a good place to install CMake scripts that are to be executed by cmake -P ?
2013/8/6 Alan W. Irwin ir...@beluga.phys.uvic.ca: I have a project that installs a CMake script which will be executed by users using cmake -P fullpath_for_cmake_scriptname. Where is a reasonable place to install cmake_scriptname? Currently I am thinking of prefix/share/project_name/cmake_scriptname but I am a bit concerned that location might be a bad choice because it is completely unpopulated under Debian (at least for CMake scriptnames that end in *.cmake), i.e., irwin@raven ls /usr/share/*/*.cmake ls: cannot access /usr/share/*/*.cmake: No such file or directory May be you should try: find /usr/share/ -name *.cmake (or use globstar bash option: http://www.linuxjournal.com/content/globstar-new-bash-globbing-option $ shopt -s globstar $ ls /usr/share/**/*.cmake ) on my debian (Jessie) I get at least: /usr/share/llvm-3.4/cmake/*.cmake /usr/share/cmake/SharedDesktopOntologies/*.cmake /usr/share/cmake-2.8/... /usr/share/kde4/apps/cmake/modules/*.cmake I usually install my CMake scripts in: prefix/share/project_name/cmake_scriptname or prefix/share/project_name/scripts/cmake_scriptname -- Erk L'élection n'est pas la démocratie -- http://www.le-message.org -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Example use of CPACK_INSTALL_COMMANDS
2013/8/6 Anil Gunturu anil.gunt...@skyfab.com: Thanks for the pointers. I got component based install working. However, I found the documentation pretty scarce, I had to find many things to trail and error. For example, CPACK_INSTALLED_DIRECTORIES takes directory name and component tuples, where as the documentation says Extra directories to install. I think CPACK_INSTALLED_DIRECTORIES should contains a list of pairs first element being tne name of the directory to be installed and the second being the relative path in th toplevel install directory. And yes the CPack documentation is scarce in many places, contributions (embedded documentation patches, new/update of Wiki) are welcome. for example the documentation of CPACK_INSTALLED_DIRECTORIES is embedded in Modules/CPack.cmake you may propose a patch for that. I would be glad to share some working examples, in case we have a place to post such examples. Sharing example is good and may be done in Wiki page (http://www.cmake.org/Wiki/CMake#CPack) or could be added as a CPack testcase in the CMake source tree too. Beware not to drop the list address (unless you really want private communication). On Thu, Jul 18, 2013 at 2:08 AM, Eric Noulard eric.noul...@gmail.com wrote: 2013/7/18 Anil Gunturu anil.gunt...@skyfab.com: Can someone please share an example using CPACK_INSTALL_COMMAND? More specifically, I am trying to avoid cpack installing the files using the make install. I prefer to use CPACK_INSTALLED_DIRECTORIES to get a fine grain control. Is there a way to override the default files that CPACK installs? The design and purpose of CPack is to install **every** bits specified by CMake 'install(...)' command found in your CMakeLists.txt. Some vars like CPACK_INSTALL_COMMANDS or CPACK_INSTALLED_DIRECTORIES makes it possible to install extra files/directories. Now if you want to filter out some parts appearing in 'install(...)' you'd better use COMPONENT with your install commands and select the COMPONENT to be installed by CPack using CPACK_COMPONENTS_ALL see http://www.cmake.org/cmake/help/v2.8.8/cpack.html#variable:CPACK_COMPONENTS_ALL or cpack --help-variable CPACK_COMPONENTS_ALL -- Erk L'élection n'est pas la démocratie -- http://www.le-message.org -- Erk L'élection n'est pas la démocratie -- http://www.le-message.org -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
[CMake] Objective-C support
Hi, What is the recommended way to specify compiler flags for Objective-C source files? Objective-C is not defined as a specific language in the default CMake modules (vs. C and C++ for exemple), so CMake does not seem to handle OBJC flags at all. How to define OBJCFLAGS for a whole project, in such a way that those flags are only applied to .m source files, not the other source files (.c, .cxx, etc.)? Thanks, Manu -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Visual Studio 10 compiler identification unknown
I have the same problem with Win64 + Visual Studio 2010 professional. It works from command line running cmake from *Visual Studio Command Prompt *but I'm not able to configure using the gui even if I start it from the VS command prompt.* * ** 2013/8/5 Jochen Issing i...@nesono.com On 05.08.2013, at 17:42, Jochen Issing i...@nesono.com wrote: On 05.08.2013, at 17:17, Bill Hoffman bill.hoff...@kitware.com wrote: On 8/5/2013 10:32 AM, i...@nesono.com wrote: Hi All, I hope this is not an old and boring question to you, but I did not find any help in the web to the following problem: I try to create a Visual Studio 10 solution on Windows 8 with having Visual Studio being installed alongside Visual Studio 11. Somehow, cmake does not find the right compilers: -- The C compiler identification is unknown -- The CXX compiler identification is unknown ... What is in the CMakeError.log and CMakeOutput.log files? They should be in the CMakeFiles directory. Sorry for not being able to copy paste here, but I have this: C compiler identification failed... The output was: 1 for both CC and CXX and log contains: The system is: Windows - 6.2 - AMD64 -Bill -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Visual Studio 10 compiler identification unknown
On 2013-08-06 12:19, Jorge Perez wrote: I have the same problem with Win64 + Visual Studio 2010 professional. It works from command line running cmake from /Visual Studio Command Prompt /but I'm not able to configure using the gui even if I start it from the VS command prompt./ / /That's how it started for me - now it is always failing when using Visual Studio 10, but now I can not even find my stdlib headers (e.g. stdio.h) within the Visual Studio 10 installation/ path. I'll keep you updated if I find anything new... -- jochen / / // 2013/8/5 Jochen Issing i...@nesono.com mailto:i...@nesono.com On 05.08.2013, at 17:42, Jochen Issing i...@nesono.com mailto:i...@nesono.com wrote: On 05.08.2013, at 17:17, Bill Hoffman bill.hoff...@kitware.com mailto:bill.hoff...@kitware.com wrote: On 8/5/2013 10:32 AM, i...@nesono.com mailto:i...@nesono.com wrote: Hi All, I hope this is not an old and boring question to you, but I did not find any help in the web to the following problem: I try to create a Visual Studio 10 solution on Windows 8 with having Visual Studio being installed alongside Visual Studio 11. Somehow, cmake does not find the right compilers: -- The C compiler identification is unknown -- The CXX compiler identification is unknown ... What is in the CMakeError.log and CMakeOutput.log files? They should be in the CMakeFiles directory. Sorry for not being able to copy paste here, but I have this: C compiler identification failed... The output was: 1 for both CC and CXX and log contains: The system is: Windows - 6.2 - AMD64 -Bill -- Powered by www.kitware.com http://www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake -- Powered by www.kitware.com http://www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake -- Powered by www.kitware.com http://www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Visual Studio 10 compiler identification unknown
I had problem with both, without SP1 and with SP1 installed. I'm able to configure with cmake but not with cmake-gui. 2013/8/6 Christoph Cullmann cullm...@absint.com SP1 for Visual Studio 2010 installed? I got problems on my machine with that setup, too, if no SP1 for 2010 installed ;) Greetings Christoph - Ursprüngliche Mail - On 2013-08-06 12:19, Jorge Perez wrote: I have the same problem with Win64 + Visual Studio 2010 professional. It works from command line running cmake from Visual Studio Command Prompt but I'm not able to configure using the gui even if I start it from the VS command prompt. That's how it started for me - now it is always failing when using Visual Studio 10, but now I can not even find my stdlib headers (e.g. stdio.h) within the Visual Studio 10 installation path. I'll keep you updated if I find anything new... -- jochen 2013/8/5 Jochen Issing i...@nesono.com On 05.08.2013, at 17:42, Jochen Issing i...@nesono.com wrote: On 05.08.2013, at 17:17, Bill Hoffman bill.hoff...@kitware.com wrote: On 8/5/2013 10:32 AM, i...@nesono.com wrote: Hi All, I hope this is not an old and boring question to you, but I did not find any help in the web to the following problem: I try to create a Visual Studio 10 solution on Windows 8 with having Visual Studio being installed alongside Visual Studio 11. Somehow, cmake does not find the right compilers: -- The C compiler identification is unknown -- The CXX compiler identification is unknown ... What is in the CMakeError.log and CMakeOutput.log files? They should be in the CMakeFiles directory. Sorry for not being able to copy paste here, but I have this: C compiler identification failed... The output was: 1 for both CC and CXX and log contains: The system is: Windows - 6.2 - AMD64 -Bill -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake -- - Dr.-Ing. Christoph Cullmann - AbsInt Angewandte Informatik GmbH Email: cullm...@absint.com Science Park 1 Tel: +49-681-38360-22 66123 Saarbrücken Fax: +49-681-38360-20 GERMANYWWW: http://www.AbsInt.com
Re: [CMake] Objective-C support
On Tue, 6 Aug 2013 12:05:35 +0200, Emmanuel Blot said: What is the recommended way to specify compiler flags for Objective-C source files? Objective-C is not defined as a specific language in the default CMake modules (vs. C and C++ for exemple), so CMake does not seem to handle OBJC flags at all. How to define OBJCFLAGS for a whole project, in such a way that those flags are only applied to .m source files, not the other source files (.c, .cxx, etc.)? There might be some useful info for you here: http://public.kitware.com/Bug/view.php?id=4756 Cheers, -- 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 Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Visual Studio 10 compiler identification unknown
On 8/6/2013 7:40 AM, Jorge Perez wrote: I had problem with both, without SP1 and with SP1 installed. I'm able to configure with cmake but not with cmake-gui. It must be an environment thing. You can use cmake and cmake-gui from the exact same shell and one works and the other does not? -Bill -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Can CMake confgure shorter cmmand argments?
On 8/6/2013 1:59 AM, Rolf Eike Beer wrote: And specifically HOW one can tell CMake to do this? They are obviously not implemented in CMake for this compiler. So one needs to do that. The file to look at is Modules/Platform/Windows.cmake It currently has this: # for borland make long command lines are redirected to a file # with the following syntax, see Windows-bcc32.cmake for use if(CMAKE_GENERATOR MATCHES Borland) set(CMAKE_START_TEMP_FILE @|\n) set(CMAKE_END_TEMP_FILE \n|) endif() # for nmake make long command lines are redirected to a file # with the following syntax, see Windows-bcc32.cmake for use if(CMAKE_GENERATOR MATCHES NMake) set(CMAKE_START_TEMP_FILE @\n) set(CMAKE_END_TEMP_FILE \n) endif() What generator are you using? -Bill -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Visual Studio 10 compiler identification unknown
Yes, cmake work as expected but cmake-gui does not, it does not identify correctly the C compiler. Both started from de VS command prompt. BTW, I didn't expect run cmake-gui from the command prompt. 2013/8/6 Bill Hoffman bill.hoff...@kitware.com On 8/6/2013 7:40 AM, Jorge Perez wrote: I had problem with both, without SP1 and with SP1 installed. I'm able to configure with cmake but not with cmake-gui. It must be an environment thing. You can use cmake and cmake-gui from the exact same shell and one works and the other does not? -Bill -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Visual Studio 10 compiler identification unknown
On 8/6/2013 10:03 AM, Jorge Perez wrote: Yes, cmake work as expected but cmake-gui does not, it does not identify correctly the C compiler. Both started from de VS command prompt. BTW, I didn't expect run cmake-gui from the command prompt. What did you mean you did not expect run cmake-gui from the command prompt? Can you run with --debug-trycompile on a minimal test case: project(foo) # only one line needed in the cmake file. Then zip up the binary tree and email it to me off the list? -Bill -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Visual Studio 10 compiler identification unknown
Sorry, I meant that since this situation (windows 8 + visual studio 2010 profesional + SP1) I had always started cmake-gui from the access at desktop. I suppose it is a problem in my environment but don't know what to fix. The test you suggest did not fail! Then I tried to configure VTK and cmake-gui from VS command prompt work as expected. May be it is using some information stored in registry? Next test is try again cmake-gui from desktop, I hadn't try it until you suggested the test. 2013/8/6 Bill Hoffman bill.hoff...@kitware.com On 8/6/2013 10:03 AM, Jorge Perez wrote: Yes, cmake work as expected but cmake-gui does not, it does not identify correctly the C compiler. Both started from de VS command prompt. BTW, I didn't expect run cmake-gui from the command prompt. What did you mean you did not expect run cmake-gui from the command prompt? Can you run with --debug-trycompile on a minimal test case: project(foo) # only one line needed in the cmake file. Then zip up the binary tree and email it to me off the list? -Bill -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] correct dependencies of update-if-different generated files?`
On 2013-07-29 19:02, Matthew Woehlke wrote: Let's say¹ I have a code generation tool, 'gen', that I am naïvely using to build a library, like so: add_custom_command( OUTPUT a.cpp b.cpp COMMAND gen in.xml DEPENDS in.xml ) add_library(foo a.cpp b.cpp) Now let's say that 'gen' is clever and does not overwrite the output files with identical content (sort-of like configure_file). Now, if in.xml is changed, the 'gen' command will run every time because the mtime of in.xml is newer than that of a.cpp and b.cpp. BUT... this only affects gmake (at least, it does not affect ninja² and reportedly does not affect VS). Has anyone run into this before, and/or is there a way to express the build rules so that the build will completely converge (will not execute any commands) *without* unnecessarily recompiling the generated source files? And, since I don't believe that there is, how would folks feel about improving add_custom_command to specifically handle this case? I think in pure make it is possible to solve the problem by having the custom command also update a sentinel file on successful completion, and doing like: a.cpp b.cpp: sentinel # No command here! sentinel: in.xml gen in.xml touch sentinel Such an enhancement would also be desirable as it would allow 'automatic' adjusting of the build rules for generators that have the problem with only a minor change to the CMake rules, and without penalizing generators that are more clever. (¹ Original/actual code where I ran into this: https://codereview.qt-project.org/61497) (² Ninja is not affected because it records the last time it updated the output files independent of their mtime.) No comments? -- Matthew -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Visual Studio 10 compiler identification unknown
Configuration of VTK with cmake-gui was ok. Don't know how it was fixed. Does it help if I send the output of the minimal test case? 2013/8/6 Jorge Perez josp.jo...@gmail.com Sorry, I meant that since this situation (windows 8 + visual studio 2010 profesional + SP1) I had always started cmake-gui from the access at desktop. I suppose it is a problem in my environment but don't know what to fix. The test you suggest did not fail! Then I tried to configure VTK and cmake-gui from VS command prompt work as expected. May be it is using some information stored in registry? Next test is try again cmake-gui from desktop, I hadn't try it until you suggested the test. 2013/8/6 Bill Hoffman bill.hoff...@kitware.com On 8/6/2013 10:03 AM, Jorge Perez wrote: Yes, cmake work as expected but cmake-gui does not, it does not identify correctly the C compiler. Both started from de VS command prompt. BTW, I didn't expect run cmake-gui from the command prompt. What did you mean you did not expect run cmake-gui from the command prompt? Can you run with --debug-trycompile on a minimal test case: project(foo) # only one line needed in the cmake file. Then zip up the binary tree and email it to me off the list? -Bill -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Visual Studio 10 compiler identification unknown
On 8/6/2013 11:31 AM, Jorge Perez wrote: Configuration of VTK with cmake-gui was ok. Don't know how it was fixed. Does it help if I send the output of the minimal test case? Sending the output if a case where it is failing will be helpful. -Bill -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Visual Studio 10 compiler identification unknown
Configuration of VTK with cmake-gui was ok. Don't know how it was fixed. Does it help if I send the output of the minimal test case? I suspect deleting the cache in cmake-gui then running cmake-gui from the windows shortcut will break it again. BTW, I usually run cmake-gui from a visual studio command prompt. The reason for this is I use more than visual studio compiler and also use 32 and 64 bit in different build trees so I have command prompts with different environment variables set that help cmake to find the correct libraries for the build tree that I am currently using. John -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
[CMake] Iterating empty elements in a list
I've seen that list(LENGTH) will ignore empty elements in a list. Example: 1;2;;4;5 Length will be 4 here instead of 5. I was trying to come up with a way to modify the list as a string prior to iterating it to give empty elements some dummy value, so that the above example would appear as: 1;2;empty;4;5 However, this isn't going to work with string( REGEX REPLACE ) as the modifications are not included in the continuation of the regex search (I think positive lookbehind is needed here?). Basically this case cannot be converted: ;;; to: empty;empty;empty Anyone know how I can iterate empty elements in a list? -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Iterating empty elements in a list
Just to be clear, I can't use foreach(): foreach( var IN LISTS list ) I am doing a yielded approach to looping by using list( GET ) and list( LENGTH ) in combination. So I would need the list() functions to acknowledge empty elements. On Tue, Aug 6, 2013 at 3:04 PM, Robert Dailey rcdailey.li...@gmail.com wrote: I've seen that list(LENGTH) will ignore empty elements in a list. Example: 1;2;;4;5 Length will be 4 here instead of 5. I was trying to come up with a way to modify the list as a string prior to iterating it to give empty elements some dummy value, so that the above example would appear as: 1;2;empty;4;5 However, this isn't going to work with string( REGEX REPLACE ) as the modifications are not included in the continuation of the regex search (I think positive lookbehind is needed here?). Basically this case cannot be converted: ;;; to: empty;empty;empty Anyone know how I can iterate empty elements in a list? -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Iterating empty elements in a list
Sorry for the spam, after posting a solution dawned on me. Here is what I did for anyone else that might need a solution (or care to propose a better one): function( replace_empty_elements out_list in_list ) foreach( item IN LISTS in_list ) if( item STREQUAL ) set( item_val EMPTY ) else() set( item_val ${item} ) endif() list( APPEND formatted_list ${item_val} ) endforeach() set( ${out_list} ${formatted_list} PARENT_SCOPE ) endfunction() Use it like so: set( inlist ;;test; ) replace_empty_elements( outlist ${inlist} ) message( outlist: ${outlist} ) Output: outlist: EMPTY;EMPTY;test;EMPTY On Tue, Aug 6, 2013 at 3:10 PM, Robert Dailey rcdailey.li...@gmail.com wrote: Just to be clear, I can't use foreach(): foreach( var IN LISTS list ) I am doing a yielded approach to looping by using list( GET ) and list( LENGTH ) in combination. So I would need the list() functions to acknowledge empty elements. On Tue, Aug 6, 2013 at 3:04 PM, Robert Dailey rcdailey.li...@gmail.com wrote: I've seen that list(LENGTH) will ignore empty elements in a list. Example: 1;2;;4;5 Length will be 4 here instead of 5. I was trying to come up with a way to modify the list as a string prior to iterating it to give empty elements some dummy value, so that the above example would appear as: 1;2;empty;4;5 However, this isn't going to work with string( REGEX REPLACE ) as the modifications are not included in the continuation of the regex search (I think positive lookbehind is needed here?). Basically this case cannot be converted: ;;; to: empty;empty;empty Anyone know how I can iterate empty elements in a list? -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
[Cmake-commits] CMake branch, next, updated. v2.8.11.2-3691-gdeaaba2
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, next has been updated via deaaba2b2c2012fec53a7f6ab93e7b985dbd61fa (commit) via 2a0241a90a821fe334ea0942b6eb9d97605d9ed9 (commit) from 1b4d3bf95e2f1e37b3ac223ffab20175f996ebe9 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=deaaba2b2c2012fec53a7f6ab93e7b985dbd61fa commit deaaba2b2c2012fec53a7f6ab93e7b985dbd61fa Merge: 1b4d3bf 2a0241a Author: Brad King brad.k...@kitware.com AuthorDate: Tue Aug 6 09:00:53 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Tue Aug 6 09:00:53 2013 -0400 Merge topic 'osx-no-command-line-tools' into next 2a0241a OS X: Ask Xcode for compiler only if it is NOTFOUND http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2a0241a90a821fe334ea0942b6eb9d97605d9ed9 commit 2a0241a90a821fe334ea0942b6eb9d97605d9ed9 Author: Brad King brad.k...@kitware.com AuthorDate: Tue Aug 6 08:56:30 2013 -0400 Commit: Brad King brad.k...@kitware.com CommitDate: Tue Aug 6 08:56:30 2013 -0400 OS X: Ask Xcode for compiler only if it is NOTFOUND If the user explicitly sets CMAKE_LANG_COMPILER to an empty string then honor it instead of asking Xcode for a compiler. diff --git a/Modules/CMakeDetermineCompiler.cmake b/Modules/CMakeDetermineCompiler.cmake index 1763c96..f522c44 100644 --- a/Modules/CMakeDetermineCompiler.cmake +++ b/Modules/CMakeDetermineCompiler.cmake @@ -71,7 +71,7 @@ macro(_cmake_find_compiler lang) unset(_languages) # Look for a make tool provided by Xcode - if(NOT CMAKE_${lang}_COMPILER AND CMAKE_HOST_APPLE) + if(CMAKE_${lang}_COMPILER STREQUAL CMAKE_${lang}_COMPILER-NOTFOUND AND CMAKE_HOST_APPLE) foreach(comp ${CMAKE_${lang}_COMPILER_LIST}) execute_process(COMMAND xcrun --find ${comp} OUTPUT_VARIABLE _xcrun_out OUTPUT_STRIP_TRAILING_WHITESPACE --- Summary of changes: Modules/CMakeDetermineCompiler.cmake |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits
[Cmake-commits] CMake branch, next, updated. v2.8.11.2-3693-g2a18adb
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, next has been updated via 2a18adb84108878563871539073d6cc0bb4bfb73 (commit) via 03ab170fe0ad8fa44083dc2e2a6f662be480c9ff (commit) from deaaba2b2c2012fec53a7f6ab93e7b985dbd61fa (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2a18adb84108878563871539073d6cc0bb4bfb73 commit 2a18adb84108878563871539073d6cc0bb4bfb73 Merge: deaaba2 03ab170 Author: Brad King brad.k...@kitware.com AuthorDate: Tue Aug 6 09:04:14 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Tue Aug 6 09:04:14 2013 -0400 Merge topic 'osx-no-command-line-tools' into next 03ab170 OS X: Enable command-line build without tools in PATH http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=03ab170fe0ad8fa44083dc2e2a6f662be480c9ff commit 03ab170fe0ad8fa44083dc2e2a6f662be480c9ff Author: Brad King brad.k...@kitware.com AuthorDate: Mon Aug 5 13:48:09 2013 -0400 Commit: Brad King brad.k...@kitware.com CommitDate: Tue Aug 6 09:00:18 2013 -0400 OS X: Enable command-line build without tools in PATH Teach modules CMakeDetermineCompiler and CMakeUnixFindMake to ask Xcode where to find the compiler or make tools, using 'xcrun --find', if none is found in the PATH. Teach module Platform/Darwin to add the path to the SDK to CMAKE_SYSTEM_PREFIX_PATH so that find_* command look there. Also add the SDK /usr/include directory to the implicit include list in CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES to suppress explicit -I options for it. diff --git a/Modules/CMakeDetermineCompiler.cmake b/Modules/CMakeDetermineCompiler.cmake index 2d12c07..f522c44 100644 --- a/Modules/CMakeDetermineCompiler.cmake +++ b/Modules/CMakeDetermineCompiler.cmake @@ -69,4 +69,17 @@ macro(_cmake_find_compiler lang) endif() unset(_${lang}_COMPILER_HINTS) unset(_languages) + + # Look for a make tool provided by Xcode + if(CMAKE_${lang}_COMPILER STREQUAL CMAKE_${lang}_COMPILER-NOTFOUND AND CMAKE_HOST_APPLE) +foreach(comp ${CMAKE_${lang}_COMPILER_LIST}) + execute_process(COMMAND xcrun --find ${comp} +OUTPUT_VARIABLE _xcrun_out OUTPUT_STRIP_TRAILING_WHITESPACE +ERROR_VARIABLE _xcrun_err) + if(_xcrun_out) +set_property(CACHE CMAKE_${lang}_COMPILER PROPERTY VALUE ${_xcrun_out}) +break() + endif() +endforeach() + endif() endmacro() diff --git a/Modules/CMakeUnixFindMake.cmake b/Modules/CMakeUnixFindMake.cmake index c75cf7c..3714926 100644 --- a/Modules/CMakeUnixFindMake.cmake +++ b/Modules/CMakeUnixFindMake.cmake @@ -14,3 +14,13 @@ find_program(CMAKE_MAKE_PROGRAM NAMES gmake make smake) mark_as_advanced(CMAKE_MAKE_PROGRAM) + +# Look for a make tool provided by Xcode +if(NOT CMAKE_MAKE_PROGRAM AND CMAKE_HOST_APPLE) + execute_process(COMMAND xcrun --find make +OUTPUT_VARIABLE _xcrun_out OUTPUT_STRIP_TRAILING_WHITESPACE +ERROR_VARIABLE _xcrun_err) + if(_xcrun_out) +set_property(CACHE CMAKE_MAKE_PROGRAM PROPERTY VALUE ${_xcrun_out}) + endif() +endif() diff --git a/Modules/Platform/Darwin.cmake b/Modules/Platform/Darwin.cmake index 865cc8e..db8c7ef 100644 --- a/Modules/Platform/Darwin.cmake +++ b/Modules/Platform/Darwin.cmake @@ -326,6 +326,12 @@ set(CMAKE_SYSTEM_APPBUNDLE_PATH unset(_apps_paths) include(Platform/UnixPaths) +if(_CMAKE_OSX_SYSROOT_PATH AND EXISTS ${_CMAKE_OSX_SYSROOT_PATH}/usr/include) + list(APPEND CMAKE_SYSTEM_PREFIX_PATH ${_CMAKE_OSX_SYSROOT_PATH}/usr) + foreach(lang C CXX) +list(APPEND CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES ${_CMAKE_OSX_SYSROOT_PATH}/usr/include) + endforeach() +endif() list(APPEND CMAKE_SYSTEM_PREFIX_PATH /sw# Fink /opt/local # MacPorts --- Summary of changes: hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits
[Cmake-commits] CMake branch, master, updated. v2.8.11.2-694-g87e0e6e
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, master has been updated via 87e0e6e497b76f4ab7292cca34bd7c006832723b (commit) via 370bf554151a1b272baf62a0ce9823cf9995116e (commit) from 0174133dfd1f46662bb517677d3bf0a765b11e3e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=87e0e6e497b76f4ab7292cca34bd7c006832723b commit 87e0e6e497b76f4ab7292cca34bd7c006832723b Merge: 0174133 370bf55 Author: Brad King brad.k...@kitware.com AuthorDate: Tue Aug 6 09:07:21 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Tue Aug 6 09:07:21 2013 -0400 Merge topic 'ALIAS-targets' 370bf55 Add the ALIAS target concept for libraries and executables. --- Summary of changes: Source/cmAddDependenciesCommand.cxx|7 ++ Source/cmAddExecutableCommand.cxx | 72 ++ Source/cmAddExecutableCommand.h| 13 +++ Source/cmAddLibraryCommand.cxx | 80 Source/cmAddLibraryCommand.h | 13 +++ Source/cmExportCommand.cxx |9 ++ Source/cmGeneratorExpressionEvaluator.cxx | 12 +++ Source/cmGetPropertyCommand.cxx| 12 +++ Source/cmGetTargetPropertyCommand.cxx | 25 +-- Source/cmGlobalGenerator.cxx | 26 ++- Source/cmGlobalGenerator.h |7 ++- Source/cmInstallCommand.cxx|9 ++ Source/cmMakefile.cxx | 50 +++- Source/cmMakefile.h|7 +- Source/cmSetPropertyCommand.cxx|5 + Source/cmSetTargetPropertiesCommand.cxx|5 + Source/cmTarget.cxx|6 ++ Source/cmTargetLinkLibrariesCommand.cxx|5 + Source/cmTargetPropCommandBase.cxx |5 + Tests/AliasTarget/CMakeLists.txt | 47 Tests/AliasTarget/bat.cpp | 28 +++ Tests/AliasTarget/commandgenerator.cpp | 15 Tests/AliasTarget/empty.cpp|7 ++ Tests/AliasTarget/object.cpp |5 + Tests/AliasTarget/object.h |4 + Tests/AliasTarget/targetgenerator.cpp | 13 +++ Tests/CMakeLists.txt |1 + Tests/CTestTestDepends/CMakeLists.txt |3 +- Tests/GeneratorExpression/CMakeLists.txt |8 ++ Tests/GeneratorExpression/check-part3.cmake|4 + Tests/GeneratorExpression/empty.cpp|6 +- Tests/RunCMake/CMakeLists.txt |1 + .../{CMP0004 = alias_targets}/CMakeLists.txt |0 Tests/RunCMake/alias_targets/RunCMakeTest.cmake| 20 + .../add_dependencies-result.txt} |0 .../alias_targets/add_dependencies-stderr.txt |5 + .../RunCMake/alias_targets/add_dependencies.cmake |9 ++ .../add_executable-library-result.txt} |0 .../add_executable-library-stderr.txt |5 + .../alias_targets/add_executable-library.cmake |6 ++ .../add_library-executable-result.txt} |0 .../add_library-executable-stderr.txt |5 + .../alias_targets/add_library-executable.cmake |6 ++ .../alias-target-result.txt} |0 .../RunCMake/alias_targets/alias-target-stderr.txt |5 + Tests/RunCMake/alias_targets/alias-target.cmake|8 ++ .../RunCMake/{CMP0022 = alias_targets}/empty.cpp |0 .../exclude-from-all-result.txt} |0 .../alias_targets/exclude-from-all-stderr.txt |4 + .../RunCMake/alias_targets/exclude-from-all.cmake |6 ++ .../export-result.txt} |0 Tests/RunCMake/alias_targets/export-stderr.txt |4 + Tests/RunCMake/alias_targets/export.cmake |8 ++ .../imported-result.txt} |0 Tests/RunCMake/alias_targets/imported-stderr.txt |4 + .../imported-target-result.txt}|0 .../alias_targets/imported-target-stderr.txt |5 + Tests/RunCMake/alias_targets/imported-target.cmake |6 ++ Tests/RunCMake/alias_targets/imported.cmake|2 + .../install-export-result.txt} |0 .../alias_targets/install-export-stderr.txt|4 +
[Cmake-commits] CMake branch, next, updated. v2.8.11.2-3698-gd67cc53
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, next has been updated via d67cc53a2836d98bfc7941bfc6b27472377d135e (commit) via eccb39d7f44f97d395b75b985b4e18178b72df8c (commit) from 016d4daba022d713beff5d3abf99c01b417ba40f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d67cc53a2836d98bfc7941bfc6b27472377d135e commit d67cc53a2836d98bfc7941bfc6b27472377d135e Merge: 016d4da eccb39d Author: Brad King brad.k...@kitware.com AuthorDate: Tue Aug 6 10:22:33 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Tue Aug 6 10:22:33 2013 -0400 Merge topic 'vs-no-GetSourceFileWithOutput' into next eccb39d VS 6,7: Refactor local generators to avoid GetSourceFileWithOutput http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=eccb39d7f44f97d395b75b985b4e18178b72df8c commit eccb39d7f44f97d395b75b985b4e18178b72df8c Author: Brad King brad.k...@kitware.com AuthorDate: Tue Aug 6 10:17:37 2013 -0400 Commit: Brad King brad.k...@kitware.com CommitDate: Tue Aug 6 10:20:03 2013 -0400 VS 6,7: Refactor local generators to avoid GetSourceFileWithOutput Use the cmSourceFile returned by AddCustomCommandToOutput instead of throwing out the return value and looking it up with GetSourceFileWithOutput. diff --git a/Source/cmLocalVisualStudio6Generator.cxx b/Source/cmLocalVisualStudio6Generator.cxx index 667d86f..e5b4057 100644 --- a/Source/cmLocalVisualStudio6Generator.cxx +++ b/Source/cmLocalVisualStudio6Generator.cxx @@ -573,22 +573,20 @@ cmLocalVisualStudio6Generator // Add the rule with the given dependencies and commands. const char* no_main_dependency = 0; - this-Makefile-AddCustomCommandToOutput(output, - depends, - no_main_dependency, - origCommand.GetCommandLines(), - comment.c_str(), - origCommand.GetWorkingDirectory()); + if(cmSourceFile* outsf = + this-Makefile-AddCustomCommandToOutput( + output, depends, no_main_dependency, + origCommand.GetCommandLines(), comment.c_str(), + origCommand.GetWorkingDirectory())) +{ +target.AddSourceFile(outsf); +} // Replace the dependencies with the output of this rule so that the // next rule added will run after this one. depends.clear(); depends.push_back(output); - // Add a source file representing this output to the project. - cmSourceFile* outsf = this-Makefile-GetSourceFileWithOutput(output); - target.AddSourceFile(outsf); - // Free the fake output name. delete [] output; } diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx index 672edf4..2bb5ad0 100644 --- a/Source/cmLocalVisualStudio7Generator.cxx +++ b/Source/cmLocalVisualStudio7Generator.cxx @@ -146,11 +146,10 @@ void cmLocalVisualStudio7Generator::FixGlobalTargets() force += /; force += tgt.GetName(); force += _force; - this-Makefile-AddCustomCommandToOutput(force.c_str(), no_depends, - no_main_dependency, - force_commands, , 0, true); if(cmSourceFile* file = - this-Makefile-GetSourceFileWithOutput(force.c_str())) + this-Makefile-AddCustomCommandToOutput( + force.c_str(), no_depends, no_main_dependency, + force_commands, , 0, true)) { tgt.AddSourceFile(file); } --- Summary of changes: Source/cmLocalVisualStudio6Generator.cxx | 18 -- Source/cmLocalVisualStudio7Generator.cxx |7 +++ 2 files changed, 11 insertions(+), 14 deletions(-) hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits
[Cmake-commits] CMake branch, next, updated. v2.8.11.2-3705-g6568c4a
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, next has been updated via 6568c4a37ec615e5a3dc4908377ad5dfd6661bde (commit) via e59d61d58a645c0ede270115d0b10286271881be (commit) via 8e93fee04e56cf8368340ba5170368fc478c412c (commit) via 854e9bac14dab38261ad85a0291fe03aae449fe4 (commit) via 15da32a5a55cd219a97e8b88742a2ea5145bfbd8 (commit) via 8d3a6c02ee0f88a8c70cde9f3b52c062b6968f43 (commit) via 06d6fc42053663c2bec34618f9132b7ac0402e30 (commit) from d67cc53a2836d98bfc7941bfc6b27472377d135e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6568c4a37ec615e5a3dc4908377ad5dfd6661bde commit 6568c4a37ec615e5a3dc4908377ad5dfd6661bde Merge: d67cc53 e59d61d Author: Ben Boeckel ben.boec...@kitware.com AuthorDate: Tue Aug 6 14:28:36 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Tue Aug 6 14:28:36 2013 -0400 Merge topic 'dev/fix-variable-watch-crash' into next e59d61d Remove variable_watch watches on destruction 8e93fee Check newValue for NULL 854e9ba Don't share memory for variable_watch callbacks 15da32a Allow specifying the data to match in RemoveWatch 8d3a6c0 Match client_data as well for finding duplicates 06d6fc4 Add test for watching a variable multiple times http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e59d61d58a645c0ede270115d0b10286271881be commit e59d61d58a645c0ede270115d0b10286271881be Author: Ben Boeckel maths...@gmail.com AuthorDate: Tue Aug 6 14:18:58 2013 -0400 Commit: Ben Boeckel maths...@gmail.com CommitDate: Tue Aug 6 14:32:55 2013 -0400 Remove variable_watch watches on destruction This cleans out old watches. Now that watches are completely separate, if we don't remove all of the old watches, the following happens: variable_watch(watched call1) variable_watch(watched call2) set(bar ${watched}) (in ccmake): configure configure makes the output: configure call1 call2 configure call1 call2 call1 call2 since the old watches are still valid. diff --git a/Source/cmVariableWatchCommand.cxx b/Source/cmVariableWatchCommand.cxx index 25bf450..bd161f9 100644 --- a/Source/cmVariableWatchCommand.cxx +++ b/Source/cmVariableWatchCommand.cxx @@ -101,6 +101,18 @@ cmVariableWatchCommand::cmVariableWatchCommand() } // +cmVariableWatchCommand::~cmVariableWatchCommand() +{ + std::setstd::string::const_iterator it; + for ( it = this-WatchedVariables.begin(); it != this-WatchedVariables.end(); +++it ) +{ +this-Makefile-GetCMakeInstance()-GetVariableWatch()-RemoveWatch( + *it, cmVariableWatchCommandVariableAccessed); +} +} + +// bool cmVariableWatchCommand ::InitialPass(std::vectorstd::string const args, cmExecutionStatus ) { @@ -128,6 +140,7 @@ bool cmVariableWatchCommand data-InCallback = false; data-Command = command; + this-WatchedVariables.insert(variable); if ( !this-Makefile-GetCMakeInstance()-GetVariableWatch()-AddWatch( variable, cmVariableWatchCommandVariableAccessed, data, deleteVariableWatchCallbackData) ) diff --git a/Source/cmVariableWatchCommand.h b/Source/cmVariableWatchCommand.h index 295a64a..545535c 100644 --- a/Source/cmVariableWatchCommand.h +++ b/Source/cmVariableWatchCommand.h @@ -32,6 +32,9 @@ public: //! Default constructor cmVariableWatchCommand(); + //! Destructor. + ~cmVariableWatchCommand(); + /** * This is called when the command is first encountered in * the CMakeLists.txt file. @@ -75,6 +78,9 @@ public: } cmTypeMacro(cmVariableWatchCommand, cmCommand); + +protected: + std::setstd::string WatchedVariables; }; http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8e93fee04e56cf8368340ba5170368fc478c412c commit 8e93fee04e56cf8368340ba5170368fc478c412c Author: Ben Boeckel maths...@gmail.com AuthorDate: Tue Aug 6 14:32:19 2013 -0400 Commit: Ben Boeckel maths...@gmail.com CommitDate: Tue Aug 6 14:32:19 2013 -0400 Check newValue for NULL On read access, newValue can be NULL since there is no new value, so use the empty string instead. diff --git a/Source/cmVariableWatchCommand.cxx b/Source/cmVariableWatchCommand.cxx index 63069d0..25bf450 100644 --- a/Source/cmVariableWatchCommand.cxx +++ b/Source/cmVariableWatchCommand.cxx @@ -80,7 +80,7 @@ static void
[Cmake-commits] CMake branch, next, updated. v2.8.11.2-3708-g2f5bb2d
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, next has been updated via 2f5bb2df18b65553041433ca34ad84a65d34e9c5 (commit) via 2314115b3d612a8e2f501276b32c80bcad144f06 (commit) via 1d2eb8729d1f61ab2eee8253d4243dd69e9175a9 (commit) from 6568c4a37ec615e5a3dc4908377ad5dfd6661bde (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2f5bb2df18b65553041433ca34ad84a65d34e9c5 commit 2f5bb2df18b65553041433ca34ad84a65d34e9c5 Merge: 6568c4a 2314115 Author: Ben Boeckel ben.boec...@kitware.com AuthorDate: Tue Aug 6 16:10:58 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Tue Aug 6 16:10:58 2013 -0400 Merge topic 'dev/fix-variable-watch-crash' into next 2314115 Fix style in destructor 1d2eb87 Merge WatchTwice into existing variable_watch test http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2314115b3d612a8e2f501276b32c80bcad144f06 commit 2314115b3d612a8e2f501276b32c80bcad144f06 Author: Ben Boeckel maths...@gmail.com AuthorDate: Tue Aug 6 15:17:55 2013 -0400 Commit: Ben Boeckel maths...@gmail.com CommitDate: Tue Aug 6 16:10:32 2013 -0400 Fix style in destructor diff --git a/Source/cmVariableWatchCommand.cxx b/Source/cmVariableWatchCommand.cxx index bd161f9..4eff19e 100644 --- a/Source/cmVariableWatchCommand.cxx +++ b/Source/cmVariableWatchCommand.cxx @@ -104,7 +104,8 @@ cmVariableWatchCommand::cmVariableWatchCommand() cmVariableWatchCommand::~cmVariableWatchCommand() { std::setstd::string::const_iterator it; - for ( it = this-WatchedVariables.begin(); it != this-WatchedVariables.end(); + for ( it = this-WatchedVariables.begin(); +it != this-WatchedVariables.end(); ++it ) { this-Makefile-GetCMakeInstance()-GetVariableWatch()-RemoveWatch( http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1d2eb8729d1f61ab2eee8253d4243dd69e9175a9 commit 1d2eb8729d1f61ab2eee8253d4243dd69e9175a9 Author: Ben Boeckel maths...@gmail.com AuthorDate: Tue Aug 6 14:40:33 2013 -0400 Commit: Ben Boeckel maths...@gmail.com CommitDate: Tue Aug 6 14:40:33 2013 -0400 Merge WatchTwice into existing variable_watch test diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 367c2b9..6d1bca2 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -117,4 +117,3 @@ endif() add_RunCMake_test(File_Generate) add_RunCMake_test(ExportWithoutLanguage) add_RunCMake_test(target_link_libraries) -add_RunCMake_test(WatchTwice) diff --git a/Tests/RunCMake/WatchTwice/CMakeLists.txt b/Tests/RunCMake/WatchTwice/CMakeLists.txt deleted file mode 100644 index e8db6b0..000 --- a/Tests/RunCMake/WatchTwice/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -cmake_minimum_required(VERSION 2.8) -project(${RunCMake_TEST} NONE) -include(${RunCMake_TEST}.cmake) diff --git a/Tests/RunCMake/WatchTwice/RunCMakeTest.cmake b/Tests/RunCMake/WatchTwice/RunCMakeTest.cmake deleted file mode 100644 index 19205b2..000 --- a/Tests/RunCMake/WatchTwice/RunCMakeTest.cmake +++ /dev/null @@ -1,3 +0,0 @@ -include(RunCMake) - -run_cmake(WatchTwice) diff --git a/Tests/RunCMake/variable_watch/RunCMakeTest.cmake b/Tests/RunCMake/variable_watch/RunCMakeTest.cmake index 8d20476..9becb4c 100644 --- a/Tests/RunCMake/variable_watch/RunCMakeTest.cmake +++ b/Tests/RunCMake/variable_watch/RunCMakeTest.cmake @@ -2,3 +2,4 @@ include(RunCMake) run_cmake(ModifiedAccess) run_cmake(NoWatcher) +run_cmake(WatchTwice) diff --git a/Tests/RunCMake/WatchTwice/WatchTwice-stderr.txt b/Tests/RunCMake/variable_watch/WatchTwice-stderr.txt similarity index 100% rename from Tests/RunCMake/WatchTwice/WatchTwice-stderr.txt rename to Tests/RunCMake/variable_watch/WatchTwice-stderr.txt diff --git a/Tests/RunCMake/WatchTwice/WatchTwice.cmake b/Tests/RunCMake/variable_watch/WatchTwice.cmake similarity index 100% rename from Tests/RunCMake/WatchTwice/WatchTwice.cmake rename to Tests/RunCMake/variable_watch/WatchTwice.cmake --- Summary of changes: Source/cmVariableWatchCommand.cxx |3 ++- Tests/RunCMake/CMakeLists.txt |1 - Tests/RunCMake/WatchTwice/CMakeLists.txt |3 --- Tests/RunCMake/WatchTwice/RunCMakeTest.cmake |3 --- Tests/RunCMake/variable_watch/RunCMakeTest.cmake |1 + .../WatchTwice-stderr.txt |0 .../WatchTwice.cmake |0 7 files changed, 3 insertions(+), 8 deletions(-) delete mode 100644 Tests/RunCMake/WatchTwice/CMakeLists.txt delete mode 100644
[Cmake-commits] CMake branch, next, updated. v2.8.11.2-3718-g21e61f0
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, next has been updated via 21e61f055931d7e561b4ef4cab60ea7797fdf809 (commit) via 56e770fa9288a5801322f36442483e96cffc8a61 (commit) via cf4364cbb2e8640c50c30ab2267ef0c685dd4af9 (commit) via 6379d729a2b19a2d8391ca7cf39008372aaf0a71 (commit) via 9df982572ca2c3f22e3625f204b8e5c155d4f3d6 (commit) via f92f3ffc7648de08005600f14465433cfba84bbc (commit) via faad4e183d81e0ed5c6e1ae64ac23db95837ef71 (commit) via 8c0a98e0dabb9fab5fa31a8b9aac2f8191ba46ed (commit) via dc1c6546704bc277e7c884a53e538ee5d8b831c8 (commit) via 8d1fc6c88946f6dd18c6f17d4f6f8825547972ef (commit) from 2f5bb2df18b65553041433ca34ad84a65d34e9c5 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=21e61f055931d7e561b4ef4cab60ea7797fdf809 commit 21e61f055931d7e561b4ef4cab60ea7797fdf809 Merge: 2f5bb2d 56e770f Author: Ben Boeckel ben.boec...@kitware.com AuthorDate: Tue Aug 6 16:11:55 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Tue Aug 6 16:11:55 2013 -0400 Merge topic 'dev/fix-variable-watch-crash' into next 56e770f variable_watch: Check newValue for NULL cf4364c variable_watch: Don't share memory for callbacks 6379d72 variable_watch: Fix a typo in the error message 9df9825 variable_watch: Prevent making extra entries in the watch map f92f3ff variable_watch: Allow specifying the data to match in RemoveWatch faad4e1 variable_watch: Match client_data when finding duplicates 8c0a98e variable_watch: Add a deleter for the client data dc1c654 variable_watch: Store client data as pointers 8d1fc6c variable_watch: Add test for watching a variable multiple times http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=56e770fa9288a5801322f36442483e96cffc8a61 commit 56e770fa9288a5801322f36442483e96cffc8a61 Author: Ben Boeckel maths...@gmail.com AuthorDate: Tue Aug 6 14:32:19 2013 -0400 Commit: Ben Boeckel maths...@gmail.com CommitDate: Tue Aug 6 15:35:31 2013 -0400 variable_watch: Check newValue for NULL On read access, newValue can be NULL since there is no new value, so use the empty string instead. diff --git a/Source/cmVariableWatchCommand.cxx b/Source/cmVariableWatchCommand.cxx index 3b75ade..4eff19e 100644 --- a/Source/cmVariableWatchCommand.cxx +++ b/Source/cmVariableWatchCommand.cxx @@ -80,7 +80,7 @@ static void cmVariableWatchCommandVariableAccessed( { cmOStringStream msg; msg Variable \ variable.c_str() \ was accessed using - accessString with value \ newValue \.; + accessString with value \ (newValue?newValue:) \.; makefile-IssueMessage(cmake::LOG, msg.str()); } http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=cf4364cbb2e8640c50c30ab2267ef0c685dd4af9 commit cf4364cbb2e8640c50c30ab2267ef0c685dd4af9 Author: Ben Boeckel maths...@gmail.com AuthorDate: Fri Aug 2 15:41:45 2013 -0400 Commit: Ben Boeckel maths...@gmail.com CommitDate: Tue Aug 6 15:35:31 2013 -0400 variable_watch: Don't share memory for callbacks The command itself is owned by the cmMakefile class, but the cmVariableWatch which holds a pointer to the cmVariableWatchCommand via the client_data for the callback outlives the cmMakefile class in the Qt GUI. This means that when the cmMakefile is destroyed, the variable watch is still in effect, but with a stale pointer. To fix this, each callback is now a separate entity completely and doesn't rely on the command which spawned it at all. An example CMakeLists.txt which demonstrates the issue (only displayed in cmake-gui, so no tests can be written for it): set(var 0) variable_watch(var) diff --git a/Source/cmVariableWatchCommand.cxx b/Source/cmVariableWatchCommand.cxx index 2b81d79..3b75ade 100644 --- a/Source/cmVariableWatchCommand.cxx +++ b/Source/cmVariableWatchCommand.cxx @@ -14,63 +14,27 @@ #include cmVariableWatch.h // -static void cmVariableWatchCommandVariableAccessed( - const std::string variable, int access_type, void* client_data, - const char* newValue, const cmMakefile* mf) +struct cmVariableWatchCallbackData { - cmVariableWatchCommand* command -= static_castcmVariableWatchCommand*(client_data); - command-VariableAccessed(variable, access_type, newValue, mf); -} + bool InCallback; + std::string Command; +}; //
[Cmake-commits] CMake branch, next, updated. v2.8.11.2-3720-g1849419
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, next has been updated via 1849419857cb7f960e71af4f99be9327ce3f4675 (commit) via 2268c41a057d948ad6773c5145ee5bf6d19ea3bf (commit) from 21e61f055931d7e561b4ef4cab60ea7797fdf809 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1849419857cb7f960e71af4f99be9327ce3f4675 commit 1849419857cb7f960e71af4f99be9327ce3f4675 Merge: 21e61f0 2268c41 Author: Brad King brad.k...@kitware.com AuthorDate: Tue Aug 6 16:18:22 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Tue Aug 6 16:18:22 2013 -0400 Merge topic 'optimize-custom-command-dependencies' into next 2268c41 Optimize custom command full-path dependency lookup http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2268c41a057d948ad6773c5145ee5bf6d19ea3bf commit 2268c41a057d948ad6773c5145ee5bf6d19ea3bf Author: Nicolas Despres nicolas.desp...@gmail.com AuthorDate: Tue Aug 6 18:12:50 2013 +0200 Commit: Brad King brad.k...@kitware.com CommitDate: Tue Aug 6 16:17:13 2013 -0400 Optimize custom command full-path dependency lookup In the common case of custom command dependencies specified via full path optimize the implementation of GetSourceFileWithOutput using a (hash) map. This is significantly faster than the existing linear search. In the non-full-path case fall back to the existing linear suffix search. diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index aae92dd..08c9763 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -150,6 +150,7 @@ cmMakefile::cmMakefile(const cmMakefile mf): Internal(new Internals) this-Initialize(); this-CheckSystemVars = mf.CheckSystemVars; this-ListFileStack = mf.ListFileStack; + this-OutputToSource = mf.OutputToSource; } // @@ -1010,11 +1011,32 @@ cmMakefile::AddCustomCommandToOutput(const std::vectorstd::string outputs, cc-SetEscapeOldStyle(escapeOldStyle); cc-SetEscapeAllowMakeVars(true); file-SetCustomCommand(cc); +this-UpdateOutputToSourceMap(outputs, file); } return file; } // +void +cmMakefile::UpdateOutputToSourceMap(std::vectorstd::string const outputs, +cmSourceFile* source) +{ + for(std::vectorstd::string::const_iterator o = outputs.begin(); + o != outputs.end(); ++o) +{ +this-UpdateOutputToSourceMap(*o, source); +} +} + +// +void +cmMakefile::UpdateOutputToSourceMap(std::string const output, +cmSourceFile* source) +{ + this-OutputToSource[output] = source; +} + +// cmSourceFile* cmMakefile::AddCustomCommandToOutput(const char* output, const std::vectorstd::string depends, @@ -1994,7 +2016,7 @@ cmMakefile::AddNewTarget(cmTarget::TargetType type, const char* name) return it-second; } -cmSourceFile *cmMakefile::GetSourceFileWithOutput(const char *cname) +cmSourceFile *cmMakefile::LinearGetSourceFileWithOutput(const char *cname) { std::string name = cname; std::string out; @@ -2030,6 +2052,25 @@ cmSourceFile *cmMakefile::GetSourceFileWithOutput(const char *cname) return 0; } +cmSourceFile *cmMakefile::GetSourceFileWithOutput(const char *cname) +{ + std::string name = cname; + + // If the queried path is not absolute we use the backward compatible + // linear-time search for an output with a matching suffix. + if(!cmSystemTools::FileIsFullPath(cname)) +{ +return LinearGetSourceFileWithOutput(cname); +} + // Otherwise we use an efficient lookup map. + OutputToSourceMap::iterator o = this-OutputToSource.find(name); + if (o != this-OutputToSource.end()) +{ +return (*o).second; +} + return 0; +} + #if defined(CMAKE_BUILD_WITH_CMAKE) cmSourceGroup* cmMakefile::GetSourceGroup(const std::vectorstd::stringname) { diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h index 711a208..8bce9fd 100644 --- a/Source/cmMakefile.h +++ b/Source/cmMakefile.h @@ -29,6 +29,9 @@ #include cmsys/auto_ptr.hxx #include cmsys/RegularExpression.hxx +#if defined(CMAKE_BUILD_WITH_CMAKE) +# include cmsys/hash_map.hxx +#endif class cmFunctionBlocker; class cmCommand; @@ -1039,6 +1042,26 @@ private: bool GeneratingBuildSystem; + /** + * Old version of GetSourceFileWithOutput(const
[Cmake-commits] CMake branch, next, updated. v2.8.11.2-3735-gc24b5e6
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, next has been updated via c24b5e610c5e8ad462c16debd67f2d84480b17fb (commit) via a3b86cf7117661d9b93d9ab10d5120c3bf6ccac4 (commit) via 5b141a7b293bc26b35fc1b3320931f8cc16901a1 (commit) via 1ed726a46c11ac3b9836b210584cd90e91ae3174 (commit) via dba225db334a89aae3835d98f200bb1ce3eb8753 (commit) from f7621eb082b53a9dff05259ec66bec3dd524639d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c24b5e610c5e8ad462c16debd67f2d84480b17fb commit c24b5e610c5e8ad462c16debd67f2d84480b17fb Merge: f7621eb a3b86cf Author: Brad King brad.k...@kitware.com AuthorDate: Tue Aug 6 16:54:56 2013 -0400 Commit: Brad King brad.k...@kitware.com CommitDate: Tue Aug 6 16:54:56 2013 -0400 Merge branch 'master' into next --- Summary of changes: hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits
[Cmake-commits] CMake branch, master, updated. v2.8.11.2-704-g1ed726a
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, master has been updated via 1ed726a46c11ac3b9836b210584cd90e91ae3174 (commit) via 28e770cf6eb1be898e6904e85849f701ab71b5c1 (commit) from dba225db334a89aae3835d98f200bb1ce3eb8753 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1ed726a46c11ac3b9836b210584cd90e91ae3174 commit 1ed726a46c11ac3b9836b210584cd90e91ae3174 Merge: dba225d 28e770c Author: Brad King brad.k...@kitware.com AuthorDate: Tue Aug 6 16:55:10 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Tue Aug 6 16:55:10 2013 -0400 Merge topic 'vs-masm' 28e770c VS10: Add support for assembler code (#11536) --- Summary of changes: Source/cmGlobalVisualStudio10Generator.cxx | 11 ++ Source/cmGlobalVisualStudio10Generator.h |4 ++ Source/cmVisualStudio10TargetGenerator.cxx | 47 --- 3 files changed, 50 insertions(+), 12 deletions(-) hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits
[Cmake-commits] CMake branch, master, updated. v2.8.11.2-706-g5b141a7
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, master has been updated via 5b141a7b293bc26b35fc1b3320931f8cc16901a1 (commit) via bd827f98efc1d4294b9a7d0fc134629b7507f4a1 (commit) from 1ed726a46c11ac3b9836b210584cd90e91ae3174 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5b141a7b293bc26b35fc1b3320931f8cc16901a1 commit 5b141a7b293bc26b35fc1b3320931f8cc16901a1 Merge: 1ed726a bd827f9 Author: Brad King brad.k...@kitware.com AuthorDate: Tue Aug 6 16:55:15 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Tue Aug 6 16:55:15 2013 -0400 Merge topic 'peheader' bd827f9 WIN: Use COFF file header header for architecture detection (#14083) --- Summary of changes: Modules/CMakeDetermineCompilerId.cmake | 29 + Modules/Platform/Windows-MSVC.cmake|7 --- 2 files changed, 29 insertions(+), 7 deletions(-) hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits
[Cmake-commits] CMake branch, master, updated. v2.8.11.2-710-g726fa61
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project CMake. The branch, master has been updated via 726fa61b59c20ea657091fa870bf7eba77dfaa75 (commit) from a3b86cf7117661d9b93d9ab10d5120c3bf6ccac4 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=726fa61b59c20ea657091fa870bf7eba77dfaa75 commit 726fa61b59c20ea657091fa870bf7eba77dfaa75 Author: Kitware Robot kwro...@kitware.com AuthorDate: Wed Aug 7 00:01:08 2013 -0400 Commit: Kitware Robot kwro...@kitware.com CommitDate: Wed Aug 7 00:01:08 2013 -0400 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index ef7c8fb..d3c2f18 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ set(CMake_VERSION_MAJOR 2) set(CMake_VERSION_MINOR 8) set(CMake_VERSION_PATCH 11) -set(CMake_VERSION_TWEAK 20130806) +set(CMake_VERSION_TWEAK 20130807) #set(CMake_VERSION_RC 1) --- Summary of changes: Source/CMakeVersion.cmake |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits