Re: [cmake-developers] Issuing errors for faulty INTERFACE_INCLUDE_DIRECTORIES
Stephen Kelly wrote: We already have similar errors in the exported targets files for things like missing library files. The wording says something about possible missing or broken packages. Right, I'll see if I can do something similar over the next few days. I've pushed the error-on-exported-missing-include-dir branch to my clone. I added the check of the include interface with a way to turn it off, because the ExportImport test semi-legitimately needs that. The variable for that probably needs a better name and does need documentation. Any comments to that? Thanks, Steve. -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
Re: [cmake-developers] Issuing errors for faulty INTERFACE_INCLUDE_DIRECTORIES
On 03/25/2013 05:57 AM, Stephen Kelly wrote: Stephen Kelly wrote: I've pushed the error-on-exported-missing-include-dir branch to my clone. Why does the test need CMAKE_OMIT_INCLUDES_CHECK? I'm also not sure if the check for '..' in the path is the right way to check this, whether symlinks need to be considered, what the result on Windows would be if the two directories are on different drives, and whether windows virtual drives need to be considered. There are other places that we check for paths under the source/build trees, such as: http://cmake.org/gitweb?p=cmake.git;a=blob;f=Source/cmLocalGenerator.cxx;hb=v2.8.10.2#l2485 -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] Issuing errors for faulty INTERFACE_INCLUDE_DIRECTORIES
Brad King wrote: On 03/25/2013 05:57 AM, Stephen Kelly wrote: Stephen Kelly wrote: I've pushed the error-on-exported-missing-include-dir branch to my clone. Why does the test need CMAKE_OMIT_INCLUDES_CHECK? Without it I get Target testSharedLibRequired INTERFACE_INCLUDE_DIRECTORIES property contains path /home/stephen/dev/src/cmake/Tests/ExportImport/build/Export which is prefixed in the build directory. because I was lazy when adding the test for it: set_property(TARGET testSharedLibRequired APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ) I'm fine with declaring such lazyness out of scope, installing the files needed from those dirs instead, and removing the OMIT variable and functionality. I'm also not sure if the check for '..' in the path is the right way to check this, whether symlinks need to be considered, what the result on Windows would be if the two directories are on different drives, and whether windows virtual drives need to be considered. There are other places that we check for paths under the source/build trees, such as: http://cmake.org/gitweb?p=cmake.git;a=blob;f=Source/cmLocalGenerator.cxx;hb=v2.8.10.2#l2485 Thanks, I'll look into that a bit later. Steve. -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
[cmake-developers] [review] add_jar (UseJava) uses cmake_parse_arguments
I have pushed a branch (use-java-use-parse-arguments) to stage that converts add_jar to using cmake_parse_arguments. This partly revers the previous change to accept jars and jar targets as sources for 'linking'; these must now be explicitly specified with INCLUDE_JARS. Other named arguments are SOURCES (optional, to 'reset' to listing sources after 'INCLUDE_JARS'), OUTPUT_DIR, OUTPUT_NAME, VERSION and ENTRY_POINT. These supersede the old variables, which are still supported for backwards compatibility. I'm on the fence if this should target 2.8.11. On the plus side, it means the historic behavior of ignoring jar files listed as sources will be preserved. On the down side, it is late in the cycle and this is a less trivial change. If it does not go in, I will redo the change to preserve the behavior from the previous commits (i.e. jars and targets are accepted in the sources list). -- Matthew ---BeginMessage--- I have pushed a branch (use-java-use-parse-arguments) to stage that converts add_jar to using cmake_parse_arguments. This partly revers the previous change to accept jars and jar targets as sources for 'linking'; these must now be explicitly specified with INCLUDE_JARS. Other named arguments are SOURCES (optional, to 'reset' to listing sources after 'INCLUDE_JARS'), OUTPUT_DIR, OUTPUT_NAME, VERSION and ENTRY_POINT. These supersede the old variables, which are still supported for backwards compatibility. I'm on the fence if this should target 2.8.11. On the plus side, it means the historic behavior of ignoring jar files listed as sources will be preserved. On the down side, it is late in the cycle and this is a less trivial change. If it does not go in, I will redo the change to preserve the behavior from the previous commits (i.e. jars and targets are accepted in the sources list). -- Matthew ---End Message--- -- 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] [review] add_jar (UseJava) uses cmake_parse_arguments
On 03/25/2013 12:28 PM, Matthew Woehlke wrote: these must now be explicitly specified with INCLUDE_JARS. Other named arguments are SOURCES (optional, to 'reset' to listing sources after 'INCLUDE_JARS'), OUTPUT_DIR, OUTPUT_NAME, VERSION and ENTRY_POINT. These supersede the old variables, which are still supported for backwards compatibility. That looks like a nicer interface to me. Andreas, Nicholas, does it work for your use cases (and not break existing projects)? I'm on the fence if this should target 2.8.11. On the plus side, it means the historic behavior of ignoring jar files listed as sources will be preserved. On the down side, it is late in the cycle and this is a less trivial change. If it does not go in, I will redo the change to preserve the behavior from the previous commits (i.e. jars and targets are accepted in the sources list). This is one reason I don't like rushing such changes in during the RC cycle. Now we have to decide whether to rush an even bigger change in, revert the original, or have behavior that was preferred for exactly one release and have to support it forever. -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] Issuing errors for faulty INTERFACE_INCLUDE_DIRECTORIES
On 03/25/2013 01:31 PM, Stephen Kelly wrote: it is right to error on ${CMAKE_SOURCE_DIR}/../bar/bat Yes because if the source dir doesn't exist later the path will not be resolvable. So will I squash these commits together and push to next? Yes, if this is intended for 2.8.11-rc2. -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] [review] add_jar (UseJava) uses cmake_parse_arguments
On 2013-03-25 13:14, Brad King wrote: On 03/25/2013 12:28 PM, Matthew Woehlke wrote: I'm on the fence if this should target 2.8.11. On the plus side, it means the historic behavior of ignoring jar files listed as sources will be preserved. On the down side, it is late in the cycle and this is a less trivial change. If it does not go in, I will redo the change to preserve the behavior from the previous commits (i.e. jars and targets are accepted in the sources list). This is one reason I don't like rushing such changes in during the RC cycle. Now we have to decide whether to rush an even bigger change in, revert the original, or have behavior that was preferred for exactly one release and have to support it forever. Essentially, yes. Sorry. I do wish I'd thought of this earlier. For what it's worth, I see advantages and disadvantages either way, and can't say I significantly prefer any of them over the others. Revert: - Pros: no behavior change from 2.8.10 - Cons: is a revert; add_jar not improved this release cycle As is: - Pros: add_jar accepts jars as it was apparently intended to, as 'source' arguments - Cons: maybe not optimal interface, must support this going forward This branch: - Pros: cleaner interface, stricter compatibility with 2.8.10 - Cons: non-trivial change, late in release cycle -- Matthew -- 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] [review] add_jar (UseJava) uses cmake_parse_arguments
On 03/25/2013 01:46 PM, Matthew Woehlke wrote: As is: - Pros: add_jar accepts jars as it was apparently intended to, as 'source' arguments - Cons: maybe not optimal interface, must support this going forward Even after the proposed interface goes in we will still have to support the old-style interface whether it has this feature or not. Users will be able to choose which style to use. Having a way to get the dependencies in the old-style interface will be useful. So long as it is not too complicated to implement both interfaces once the proposed one is added I think we should go with this option. This branch: - Pros: cleaner interface, stricter compatibility with 2.8.10 - Cons: non-trivial change, late in release cycle The new interface is complex enough that it should be more thoroughly reviewed and discussed by interested parties. -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] Issuing errors for faulty INTERFACE_INCLUDE_DIRECTORIES
On 03/25/2013 01:41 PM, Brad King wrote: So will I squash these commits together and push to next? Yes, if this is intended for 2.8.11-rc2. I just looked at the change merged to next. Can you please add test cases for the error messages? 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] Issuing errors for faulty INTERFACE_INCLUDE_DIRECTORIES
Brad King wrote: On 03/25/2013 01:41 PM, Brad King wrote: So will I squash these commits together and push to next? Yes, if this is intended for 2.8.11-rc2. I just looked at the change merged to next. Can you please add test cases for the error messages? Done now, thanks, Steve. -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
Re: [cmake-developers] if (FOO == BAR) ...
I know. I understand your motivation, and that the present state of affairs is less than desirable. However, I still object to your patch on two grounds: (1) Using the name == implies that it is doing an equivalence comparison, similar to C / C++, where the same named operator may be used with multiple types of left and right hand sides. If we had it in CMake, one *should* logically be able to infer that any type of comparison would be possible: string, variable, int or float numbers, versions. But that wouldn't be true, and so people would have to re-learn their intuition about == and it would just be strange for almost everyone. (2) We already have 2 ways of doing EQUAL comparisons, and this would be a 3rd, without being complete, and without eliminating either of the other ways... This 3rd way, while having the nice feature of doing what you want w.r.t. string values, and not doing variable value lookup, would ADD to the confusion still more because it is counter-intuitive as noted above. Sorry, I just don't see this as a good addition overall. David -Original Message- From: Alexander Neundorf neund...@kde.org To: cmake-developers cmake-developers@cmake.org Sent: Sun, Mar 24, 2013 5:23 am Subject: Re: [cmake-developers] if (FOO == BAR) ... On Saturday 23 March 2013, David Cole wrote: Wow, could be a variable on the right, too. So my previous example was still not 100% safe. Maybe this construct is 100% safe: set(x ${some_var_that_may_eval_to_another_var_name}) set(y some string constant that may also accidentally be a var) if(x STREQUAL y) You can see why the x${var} STREQUAL xSomeString approach is appealing after a discussion like this. Hmm, actually, to me, no. Now you have ugly code and as Brad noted, you can still construct cases where it breaks. That's why I came up with that quick, safe and not-really-dirty patch. Having said that, I've never been hit by that problem, or at least I'm not aware of it. Alex -- 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 -- 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] if (FOO == BAR) ...
On Monday 25 March 2013, David Cole wrote: I know. I understand your motivation, and that the present state of affairs is less than desirable. However, I still object to your patch on two grounds: (1) Using the name == implies that it is doing an equivalence comparison, similar to C / C++, where the same named operator may be used with multiple types of left and right hand sides. If we had it in CMake, one *should* logically be able to infer that any type of comparison would be possible: string, variable, int or float numbers, versions. But that wouldn't be true, and so people would have to re-learn their intuition about == and it would just be strange for almost everyone. Yes, the == would actually do what would be more expected from STREQUAL. (2) We already have 2 ways of doing EQUAL comparisons, and this would be a 3rd, without being complete, and without eliminating either of the other ways... This 3rd way, while having the nice feature of doing what you want w.r.t. string values, and not doing variable value lookup, would ADD to the confusion still more because it is counter-intuitive as noted above. Sorry, I just don't see this as a good addition overall. No problem :-) Alex -- 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 0014040]: SWIG doesn't support -pacakge
The following issue has been SUBMITTED. == http://public.kitware.com/Bug/view.php?id=14040 == Reported By:Javier Assigned To: == Project:CMake Issue ID: 14040 Category: Modules Reproducibility:always Severity: major Priority: normal Status: new == Date Submitted: 2013-03-25 16:24 EDT Last Modified: 2013-03-25 16:24 EDT == Summary:SWIG doesn't support -pacakge Description: I'm trying to generate java wrappers for a C++ interface. I need the wrappers to be in a specific package. This is achieved by passing -package package to swig. When I set SWIG_FLAGS to -package com.something, swigs yields Unrecognized option -package com.something The reason for this is that in build.cmake, the space is escaped: ... /usr/local/bin/swig -java -package\ com.something ... Steps to Reproduce: find_package(JNI REQUIRED) find_package(SWIG REQUIRED) include(${SWIG_USE_FILE}) include_directories(${JNI_INCLUDE_DIRS}) set_source_files_properties(example.i PROPERTIES CPLUSPLUS ON) set_source_files_properties(example.i PROPERTIES SWIG_FLAGS -package com.something) swig_add_module(example java example.i example.cpp) == Issue History Date ModifiedUsername FieldChange == 2013-03-25 16:24 Javier New 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-developers] [review] add_jar (UseJava) uses cmake_parse_arguments
On 2013-03-25 14:07, Brad King wrote: On 03/25/2013 01:46 PM, Matthew Woehlke wrote: As is: - Pros: add_jar accepts jars as it was apparently intended to, as 'source' arguments - Cons: maybe not optimal interface, must support this going forward Even after the proposed interface goes in we will still have to support the old-style interface whether it has this feature or not. The 'current new' interface has not been in any release, has it? (There is not an rc2 yet, and I believe it was merged after rc1?) Users will be able to choose which style to use. Having a way to get the dependencies in the old-style interface will be useful. So long as it is not too complicated to implement both interfaces once the proposed one is added I think we should go with this option. In 2.8.10, there is no way to specify jar dependencies. In current master, they can be listed as sources. In the branch, INCLUDE_JARS is required. I am not 100% sure I follow the above; do you mean you would prefer to accept jar dependencies without requiring INCLUDE_JARS even if support for INCLUDE_JARS were to land in 2.8.11? (The main argument against would be that it is a behavior change versus 2.8.10... but if you think it is a better interface, I would be okay with that.) This branch: - Pros: cleaner interface, stricter compatibility with 2.8.10 - Cons: non-trivial change, late in release cycle The new interface is complex enough that it should be more thoroughly reviewed and discussed by interested parties. Mostly it is using cmake_parse_arguments instead of setting special variables prior to calling add_jar, but generally agreed... Actually, there is a fourth option: I could write a patch that ONLY adds INCLUDE_JARS and doesn't touch the rest of the logic. This might be a more reasonable avenue for adding jar dependency support without changing the historic behavior. -- Matthew -- 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] review: pascal language supported
Hi all, some time ago I proposed adding Pascal support in cmake and since then I got a lot of progress. If you can see here I have a build system ready and working https://code.google.com/p/hedgewars/source/browse/cmake_modules/CMakeDeterminePascalCompiler.cmake?name=cmake_pascal https://code.google.com/p/hedgewars/source/browse/cmake_modules/CMakePascalCompiler.cmake.in?name=cmake_pascal https://code.google.com/p/hedgewars/source/browse/cmake_modules/CMakePascalInformation.cmake?name=cmake_pascal https://code.google.com/p/hedgewars/source/browse/cmake_modules/CMakeTestPascalCompiler.cmake?name=cmake_pascal Right now I'm targeting uniquely Freepascal compiler as that's the one I primarily use (and last one widely used afaik). Is there anyone with more cmake scripting experience than me willing to give these files a review? You'll see funny stuff (such as static linking disabled and some confusion in output name (fixed by the TARGET patch of some days ago). It would be really helpful to the project and potentially they could be integrated directly in cmake. Best, Vittorio -- 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] Explicit NAME_LIBRARIES and NAME_INCLUDE_DIRS
On 23 March 2013 14:29, Alexander Neundorf a.neundorf-w...@gmx.net wrote: On Friday 22 March 2013, Mateusz Loskot wrote: On 22 March 2013 18:01, Sergei Nikulov sergey.niku...@gmail.com wrote: 2013/3/22 Mateusz Loskot mate...@loskot.net I'm trying to build software which uses libE57 library which has Xerces as dependency. I build Xerces too as part of my project and I deploy it in custom locations and Xerces library has custom name. libE57 provides FindXerces.cmake [1] and I've been trying to figure out how I can make this module find Xerces I provide, I tried to explicitly the two variables: Xerces_INCLUDE_DIR Xerces_LIBRARY on invocation of cmake, but obviously this FindXerces.cmake is still nagging me about XERCES_ROOT This is first time when I have to deal with CMake-based software and custom names and locations of libraries, so I'm not sure either I'm missing some important tricks here or this FindXerces.cmake is just poorly written module and it does not check if user passes NAME_INCLUDE or NAME_LIBRARY directly. I know I can also use CMAKE_INCLUDE_PATH and CMAKE_LIBRARY_PATH, but how to deal with custom library names, when this module expects two options only [2]. Could anyone advise about workaround? Is this an issue in the FindXerces.cmake and would you say it's worth to submit bug report to libE57? [1] http://sourceforge.net/p/e57-3d-imgfmt/code/331/tree/trunk/cmake/Modules /FindXerces.cmake [2] http://sourceforge.net/p/e57-3d-imgfmt/code/331/tree/trunk/cmake/Modules /FindXerces.cmake#l44 Hi Mateusz, FindXerces is not part of officially supported modules, so you're on your own here :-) As workaround - try provide for script you're pointed with two more parameters _LIBRARY_DEBUG _LIBRARY_RELEASE. AFAIR you need all vars be set to avoid error message from find_package_handle_standard_args. Custom name add to NAMES. Sergei, I tried that, I specified location of my build of .lib of Xerces using all the three variables: Xerces_LIBRARY_DEBUG Xerces_LIBRARY_RELEASE Xerces_LIBRARY This should work. You don't have to set Xerces_LIBRARY, since this is set in the find-module: set (Xerces_LIBRARY debug ${Xerces_LIBRARY_DEBUG} optimized ${Xerces_LIBRARY_RELEASE}) Alexander, spot on! I missed the fact that both Xerces_LIBRARY_DEBUG *and* Xerces_LIBRARY_RELEASE need to be set together. I have been trying to set either _DEBUG or _RELEASE, as I keep separate build trees. Once I provide both, _DEBUG and _RELEASE, pointing to Xerces .lib file, then FindPackageHandleStandardArgs behaves correctly. I haven't met such requirement before. Best regards, -- Mateusz Loskot, http://mateusz.loskot.net -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] add_test() and DEBUG_POSTFIX
I did not get any feedback on this, so please excuse me asking again: Is it by design that adding a DEBUG_POSTFIX to executables makes CMake miss those very same executables when running make test? It is a bit awkward having to chose between either: A) having no postfix with executables, i.e. debug executables overwriting release executables on installation or B) not having make test work properly when building anything else but the default / release build type. Regards, -- Martin Baute so...@rootdirectory.de Am 20.03.2013 12:51, schrieb Martin Baute: In my CMakeLists.txt, I defined tests to be run when I call make test: add_executable( test_tu test/test_tu.cpp ) set( ALL_TARGETS ${ALL_TARGETS} test_tu ) add_test( test_tu test_tu ) I also configured to have a postfix -debug when building in that config, so I could install release and debug versions side-by-side: set_property( TARGET ${ALL_TARGETS} PROPERTY DEBUG_POSTFIX -debug ) However, when I build with CMAKE_BUILD_TYPE=Debug and call make test, the Makefile will try to call test_tu - not test_tu-debug. Apparently, the DEBUG_POSTFIX property is not considered by add_test(). Is this by design, a bug, or a faulty config on my part? Regards, -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] add_test() and DEBUG_POSTFIX
The second parameter to add_test is an executable name (it may be a script or executable which may not even be build by cmake) rather than a target name so I'd say this is by design. Nils On 03/25/2013 02:15 PM, Martin Baute wrote: I did not get any feedback on this, so please excuse me asking again: Is it by design that adding a DEBUG_POSTFIX to executables makes CMake miss those very same executables when running make test? It is a bit awkward having to chose between either: A) having no postfix with executables, i.e. debug executables overwriting release executables on installation or B) not having make test work properly when building anything else but the default / release build type. Regards, -- Nils Gladitz, B.Sc. DICOM, Konnektivität und Entwicklung Scivis wissenschaftliche Bildverarbeitung GmbH Bertha-von-Suttner-Str. 5 D-37085 Göttingen GERMANY Handelsregister Nr. / Trade Register No. B3100 Göttingen Geschäftsführer / Managing Directors Dr. Gernot Ebel, Dr. Uwe Engeland Tel: 0049 (0)551 634181-28 E-Mail: glad...@scivis.de Web: www.scivis.de -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] add_test() and DEBUG_POSTFIX
If you use the NAME/COMMAND signature form of add_test, the COMMAND may be a target name, and if it doesn't just work at that point, it is a bug. Also, for multi-config generators, you may need to use -C Release or -C Debug on the ctest command line to run the correct configuration. On Mar 25, 2013, at 9:27 AM, Nils Gladitz glad...@sci-vis.de wrote: The second parameter to add_test is an executable name (it may be a script or executable which may not even be build by cmake) rather than a target name so I'd say this is by design. Nils On 03/25/2013 02:15 PM, Martin Baute wrote: I did not get any feedback on this, so please excuse me asking again: Is it by design that adding a DEBUG_POSTFIX to executables makes CMake miss those very same executables when running make test? It is a bit awkward having to chose between either: A) having no postfix with executables, i.e. debug executables overwriting release executables on installation or B) not having make test work properly when building anything else but the default / release build type. Regards, -- Nils Gladitz, B.Sc. DICOM, Konnektivität und Entwicklung Scivis wissenschaftliche Bildverarbeitung GmbH Bertha-von-Suttner-Str. 5 D-37085 Göttingen GERMANY Handelsregister Nr. / Trade Register No. B3100 Göttingen Geschäftsführer / Managing Directors Dr. Gernot Ebel, Dr. Uwe Engeland Tel: 0049 (0)551 634181-28 E-Mail: glad...@scivis.de Web: www.scivis.de -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
[CMake] CMake for Python 3
I'd love to be reassured that CMake (+CPack) is a “right” tool for: Building the distribution package for a complex Python 3 (+PyQt) application, mainly aimed at the Windows platform. My goal is a single install file that, out of an original Python 3 application, will generate an ordinary “.exe” executable program, possibly verifying in advance if the target environment has got all the required pre-requisites, so to possibly grant them when missing. That's my goal and, of course, I'd love to be positively encouraged to undertake such a CMake adventure before even beginning to toil at it, of course... Of course it would be sad to discover I've taken the wrong way only at the end of it. Gratefully, yours - P.M. -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Disabling Argument Parsing in CMake -P Scripts
Hello, I would be interested in the '--' to disable command line argument parsing by CMake. Has someone opened an issue on mantis for this one ? Regards, Gregoire -Original Message- From: cmake-boun...@cmake.org [mailto:cmake-boun...@cmake.org] On Behalf Of David Cole Sent: samedi 3 novembre 2012 00:05 To: Eskandar Ensafi Cc: cmake Subject: Re: [CMake] Disabling Argument Parsing in CMake -P Scripts On Fri, Nov 2, 2012 at 5:44 PM, Eskandar Ensafi ens...@spacecomputer.com wrote: I'm not sure if I'm qualified to propose a patch, but I will look at the source code to see what I can come up with. I have additional concerns about the way the CMAKE_ARGVn variables are initialized, and this might be a good time to address these concerns. I don't know if this was a design choice, but with some exceptions, CMake seems to first parse the entire command-line, and then it runs each -P script in order, with CMAKE_ARGC/ARGVn initialized to the entire command-line, not just the arguments following the appropriate -P script. When the command-line is parsed, some recognized options are removed (e.g. -L[A][H], -N) with no ill effect, others are removed but interfere with the initialization of CMAKE_ARGC/ARGVn (e.g. --help, --version, and all variants), and some are parsed but NOT removed (e.g. -D name:type=value, -G generator, contrary to comments in my previous e-mail). A more robust treatment of these command-line arguments would be to fail with an error if incompatible combinations of options are detected, and if any options are recognized and parsed by CMake, they should be removed from the command-line. Parsing errors should cause to CMake to exit with an error, but this is not consistent (-G fails given a bog us generator, but -D with a badly formed argument allows CMake to continue). To demonstrate, take the following simple example: # MyScript.cmake MESSAGE( BEGIN SCRIPT ) IF (DEFINED MyVar) MESSAGE(MyVar = ${MyVar}) ENDIF() MESSAGE(CMAKE_ARGC = ${CMAKE_ARGC}) MATH(EXPR ARGC ${CMAKE_ARGC} - 1) FOREACH(I RANGE 0 ${ARGC}) MESSAGE(CMAKE_ARGV${I} = ${CMAKE_ARGV${I}}) ENDFOREACH() MESSAGE( END SCRIPT ) Then run it as follows: cmake -P MyScript.cmake testing -DMyVar=Test one two three -P MyScript.cmake four five six BEGIN SCRIPT CMAKE_ARGC = 13 CMAKE_ARGV0 = cmake CMAKE_ARGV1 = -P CMAKE_ARGV2 = MyScript.cmake CMAKE_ARGV3 = testing CMAKE_ARGV4 = -DMyVar=Test CMAKE_ARGV5 = one CMAKE_ARGV6 = two CMAKE_ARGV7 = three CMAKE_ARGV8 = -P CMAKE_ARGV9 = MyScript.cmake CMAKE_ARGV10 = four CMAKE_ARGV11 = five CMAKE_ARGV12 = six END SCRIPT BEGIN SCRIPT MyVar = Test CMAKE_ARGC = 13 CMAKE_ARGV0 = cmake CMAKE_ARGV1 = -P CMAKE_ARGV2 = MyScript.cmake CMAKE_ARGV3 = testing CMAKE_ARGV4 = -DMyVar=Test CMAKE_ARGV5 = one CMAKE_ARGV6 = two CMAKE_ARGV7 = three CMAKE_ARGV8 = -P CMAKE_ARGV9 = MyScript.cmake CMAKE_ARGV10 = four CMAKE_ARGV11 = five CMAKE_ARGV12 = six END SCRIPT Notice how the entire command-line, including intervening -P options and the parsed -D option, is made available to both scripts (i.e. they are both executed with the same CMAKE_ARGC/ARGVn even though CMAKE_ARGV7 was the last argument for the first script, and CMAKE_ARGV10 to CMAKE_ARGV12 were the arguments for the second script). This may or may not be useful, but to avoid breaking compatibility, I propose defining something like CMAKE_ARGC_FIRST and CMAKE_ARGC_LAST in each -P script invocation so that we can determine the range of options specific to the script being executed. Now, if we deliberately introduce an error in the -D flag as follows: cmake -P MyScript.cmake testing -DMyVar one two three -P MyScript.cmake four five six Then CMake will run the first script, and it will exit with an error when it tries to parse -DMyVar (missing value). Since implementing a -- option will require some changes to CMake's command-line parsing logic, I suggest that we fix the aforementioned issues as part of this effort. Again, I am not the best person to undertake this effort due to my lack of familiarity with the CMake code base, but if someone with more experience would like to collaborate with me, I would be more than happy to help. Best, Eskandar On Nov 2, 2012, at 2:45 AM, David Cole wrote: -- for script mode is a good idea. (Actually, if we had this for non-script mode even, it would then make sense to expose the command line arguments in similar variables even when configuring a CMakeLists file. Presently, the CMAKE_ARGVn vars are only available in script mode.) Can you propose a patch? If so, open a feature request in the bug tracker, and attach a git format-patch -1 file. Thanks, David On Fri, Nov 2, 2012 at 12:21 AM, Eskandar Ensafi ens...@spacecomputer.com wrote: Hello, I often find it very useful to run CMake scripts of the form cmake -P script-name arg1 arg2 ... as a
Re: [CMake] CMake for Python 3
2013/3/25 Pietro Moras studio...@hotmail.com I'd love to be reassured that CMake (+CPack) is a “right” tool for: Building the distribution package for a complex Python 3 (+PyQt) application, mainly aimed at the Windows platform. If your application is pure python why would you use CMake instead of pure python tools? Like Python distutils? Or may be python packages extending it: http://stackoverflow.com/questions/10712809/how-to-require-and-install-a-package-using-python-3-x-distutils My goal is a single install file that, out of an original Python 3 application, will generate an ordinary “.exe” executable program, possibly verifying in advance if the target environment has got all the required pre-requisites, so to possibly grant them when missing. AFAIK CMake and CPack do not deal with that kind of work. Doesn't look you for something like: http://cx-freeze.sourceforge.net/ That's my goal and, of course, I'd love to be positively encouraged to undertake such a CMake adventure before even beginning to toil at it, of course... Of course it would be sad to discover I've taken the wrong way only at the end of it. If ever you made it to the end then I would have been a success already right? Just kidding but AFAI Understand your goal does not fits CMake/CPack features. Gratefully, yours -- Erk Le gouvernement représentatif n'est pas la démocratie -- http://www.le-message.org -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
[Cmake-commits] CMake branch, master, updated. v2.8.10.2-926-g1cc637d
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 1cc637da205dd62ba1afabee748a35f14de1a180 (commit) via 763a6dcd335e60dfecca6b7f3f823106a3877cf6 (commit) from 1a60115bf5bcb479b049497f68a76e8bc3370d53 (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=1cc637da205dd62ba1afabee748a35f14de1a180 commit 1cc637da205dd62ba1afabee748a35f14de1a180 Merge: 1a60115 763a6dc Author: Brad King brad.k...@kitware.com AuthorDate: Mon Mar 25 10:07:52 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Mon Mar 25 10:07:52 2013 -0400 Merge topic 'doc-string-regex' 763a6dc string: Fix regex documentation of '^' and '$' (#14028) --- Summary of changes: Source/cmStringCommand.h |4 ++-- 1 files changed, 2 insertions(+), 2 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.10.2-928-g40e677e
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 40e677e785f37fa3a1d30e0a856839dc3f21e949 (commit) via 0fca1543445409f3c4a5f3946999bd4dfde46964 (commit) from 1cc637da205dd62ba1afabee748a35f14de1a180 (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=40e677e785f37fa3a1d30e0a856839dc3f21e949 commit 40e677e785f37fa3a1d30e0a856839dc3f21e949 Merge: 1cc637d 0fca154 Author: Brad King brad.k...@kitware.com AuthorDate: Mon Mar 25 10:07:57 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Mon Mar 25 10:07:57 2013 -0400 Merge topic 'cpack-printf-format-warnings' 0fca154 CPack: Avoid format expects 'unsigned int' warnings --- Summary of changes: Source/CPack/cmCPackDebGenerator.cxx |8 1 files changed, 4 insertions(+), 4 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.10.2-931-g33c2254
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 33c2254aef2f8cc11df611a462b6127bc46260d8 (commit) via 3ed2d03ee9ed9736656c8021e8f740540c9a2b7a (commit) via 83a9f09d184c89c79c0d8ec52868ad68b0604d5d (commit) from 40e677e785f37fa3a1d30e0a856839dc3f21e949 (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=33c2254aef2f8cc11df611a462b6127bc46260d8 commit 33c2254aef2f8cc11df611a462b6127bc46260d8 Merge: 40e677e 3ed2d03 Author: Brad King brad.k...@kitware.com AuthorDate: Mon Mar 25 10:08:00 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Mon Mar 25 10:08:00 2013 -0400 Merge topic 'update-kwsys' 3ed2d03 Merge branch 'upstream-kwsys' into update-kwsys 83a9f09 KWSys 2013-03-21 (2d263bc3) --- Summary of changes: Source/kwsys/ProcessUNIX.c |6 ++ Source/kwsys/SystemInformation.cxx |2 +- 2 files changed, 7 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, master, updated. v2.8.10.2-933-g365ada4
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 365ada46ce4eb766ea295fba2974cde96d0a024a (commit) via fc43477de01e4d95a2c68a401afa2fc7f5f4d255 (commit) from 33c2254aef2f8cc11df611a462b6127bc46260d8 (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=365ada46ce4eb766ea295fba2974cde96d0a024a commit 365ada46ce4eb766ea295fba2974cde96d0a024a Merge: 33c2254 fc43477 Author: Brad King brad.k...@kitware.com AuthorDate: Mon Mar 25 10:08:05 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Mon Mar 25 10:08:05 2013 -0400 Merge topic 'rename-include-current-dir-in-interface-var' fc43477 Rename variable for including current directory in interfaces --- Summary of changes: Source/cmDocumentVariables.cxx |4 ++-- Source/cmTarget.cxx|2 +- .../target_link_libraries/subdir/CMakeLists.txt|2 +- Tests/ExportImport/Export/CMakeLists.txt |2 +- Tests/ExportImport/Export/sublib/CMakeLists.txt|2 +- Tests/QtAutomoc/Adir/CMakeLists.txt|2 +- Tests/QtAutomoc/Bdir/CMakeLists.txt|2 +- Tests/QtAutomoc/CMakeLists.txt |2 +- 8 files changed, 9 insertions(+), 9 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.10.2-935-gddbe2e1
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 ddbe2e1d7da460684e4d81fc8b3f69510f87b78e (commit) via 0b7ad3f091decb9fe8f2cd7001de7ecc05913342 (commit) from 365ada46ce4eb766ea295fba2974cde96d0a024a (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=ddbe2e1d7da460684e4d81fc8b3f69510f87b78e commit ddbe2e1d7da460684e4d81fc8b3f69510f87b78e Merge: 365ada4 0b7ad3f Author: Brad King brad.k...@kitware.com AuthorDate: Mon Mar 25 10:08:10 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Mon Mar 25 10:08:10 2013 -0400 Merge topic 'compile-object-TARGET-placeholder' 0b7ad3f Replace TARGET in CMAKE_LANG_COMPILE_OBJECT rule variables --- Summary of changes: Source/cmMakefileTargetGenerator.cxx |8 1 files changed, 8 insertions(+), 0 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.10.2-2620-gc64455a
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 c64455a125651cab4110393850cd6dfaa4184cac (commit) via ddbe2e1d7da460684e4d81fc8b3f69510f87b78e (commit) via 365ada46ce4eb766ea295fba2974cde96d0a024a (commit) via 33c2254aef2f8cc11df611a462b6127bc46260d8 (commit) via 40e677e785f37fa3a1d30e0a856839dc3f21e949 (commit) via 1cc637da205dd62ba1afabee748a35f14de1a180 (commit) via 1a60115bf5bcb479b049497f68a76e8bc3370d53 (commit) via 19700735d56e2043708592d3c677efefbb450d7c (commit) via d4a94b8be46f593754ea18f214d8d4a2b3a7d7e7 (commit) via 8bffce955d2b906981779b39752a6836a7216c3c (commit) from 1ca0b5a0307774214b9082d168f74b2a8c876e3c (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=c64455a125651cab4110393850cd6dfaa4184cac commit c64455a125651cab4110393850cd6dfaa4184cac Merge: 1ca0b5a ddbe2e1 Author: Brad King brad.k...@kitware.com AuthorDate: Mon Mar 25 10:08:12 2013 -0400 Commit: Brad King brad.k...@kitware.com CommitDate: Mon Mar 25 10:08:12 2013 -0400 Merge branch 'master' into next --- 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
[Cmake-commits] CMake branch, next, updated. v2.8.10.2-2623-g29ed9dd
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 29ed9dde11d43d789951e3ce1d1ae3060126c1b2 (commit) via 1703b00c7fc34f473e84f4ba29bdc73476637005 (commit) via a6286e92c9be9f5b8ad8fb25b3c6e15c0ec17fa0 (commit) from c64455a125651cab4110393850cd6dfaa4184cac (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=29ed9dde11d43d789951e3ce1d1ae3060126c1b2 commit 29ed9dde11d43d789951e3ce1d1ae3060126c1b2 Merge: c64455a 1703b00 Author: Brad King brad.k...@kitware.com AuthorDate: Mon Mar 25 10:50:44 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Mon Mar 25 10:50:44 2013 -0400 Merge topic 'fix-COMPILE_DEFINITIONS-config' into next 1703b00 Test evaluation of per-config COMPILE_DEFINITIONS (#14037) a6286e9 Fix the evaluation of per-config COMPILE_DEFINITIONS (#14037) http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1703b00c7fc34f473e84f4ba29bdc73476637005 commit 1703b00c7fc34f473e84f4ba29bdc73476637005 Author: Brad King brad.k...@kitware.com AuthorDate: Mon Mar 25 09:43:22 2013 -0400 Commit: Brad King brad.k...@kitware.com CommitDate: Mon Mar 25 10:49:42 2013 -0400 Test evaluation of per-config COMPILE_DEFINITIONS (#14037) Teach the CompileDefinitions test to cover evaluation of config-specific generator expressions. diff --git a/Tests/CompileDefinitions/CMakeLists.txt b/Tests/CompileDefinitions/CMakeLists.txt index e7d91bf..d3e9a3e 100644 --- a/Tests/CompileDefinitions/CMakeLists.txt +++ b/Tests/CompileDefinitions/CMakeLists.txt @@ -7,10 +7,19 @@ if (${CMAKE_GENERATOR} STREQUAL Visual Studio 6) add_definitions(-DNO_SPACES_IN_DEFINE_VALUES) endif() +# Use compile flags to tell executables which config is built +# without depending on the compile definitions functionality. +foreach(c DEBUG RELEASE RELWITHDEBINFO MINSIZEREL) + set(CMAKE_C_FLAGS_${c} ${CMAKE_C_FLAGS_${c}} -DTEST_CONFIG_${c}) + set(CMAKE_CXX_FLAGS_${c} ${CMAKE_CXX_FLAGS_${c}} -DTEST_CONFIG_${c}) +endforeach() + +set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS + BUILD_CONFIG_NAME=\$CONFIGURATION\ + ) + add_subdirectory(add_definitions_command) add_subdirectory(target_prop) add_subdirectory(add_definitions_command_with_target_prop) -file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/dummyexecutable.cpp int main(int, char **) { return 0; }\n) - -add_executable(CompileDefinitions ${CMAKE_CURRENT_BINARY_DIR}/dummyexecutable.cpp) +add_executable(CompileDefinitions runtest.c) diff --git a/Tests/CompileDefinitions/add_definitions_command/CMakeLists.txt b/Tests/CompileDefinitions/add_definitions_command/CMakeLists.txt index a6372af..d3886a1 100644 --- a/Tests/CompileDefinitions/add_definitions_command/CMakeLists.txt +++ b/Tests/CompileDefinitions/add_definitions_command/CMakeLists.txt @@ -3,5 +3,6 @@ project(add_definitions_command) add_definitions(-DCMAKE_IS_FUN -DCMAKE_IS=Fun -DCMAKE_IS_=Fun -DCMAKE_IS_REALLY=Very Fun) add_definitions(-DCMAKE_IS_=Fun -DCMAKE_IS_REALLY=Very Fun -DCMAKE_IS_FUN -DCMAKE_IS=Fun) +add_definitions(-DBUILD_IS_DEBUG=$CONFIG:Debug -DBUILD_IS_NOT_DEBUG=$NOT:$CONFIG:Debug) add_executable(add_definitions_command_executable ../compiletest.cpp) diff --git a/Tests/CompileDefinitions/add_definitions_command_with_target_prop/CMakeLists.txt b/Tests/CompileDefinitions/add_definitions_command_with_target_prop/CMakeLists.txt index e415390..5587f7f 100644 --- a/Tests/CompileDefinitions/add_definitions_command_with_target_prop/CMakeLists.txt +++ b/Tests/CompileDefinitions/add_definitions_command_with_target_prop/CMakeLists.txt @@ -12,3 +12,6 @@ set_property(TARGET add_definitions_command_with_target_prop_executable APPEND P add_definitions(-DCMAKE_IS_FUN) set_property(TARGET add_definitions_command_with_target_prop_executable APPEND PROPERTY COMPILE_DEFINITIONS CMAKE_IS=Fun CMAKE_IS_=Fun) + +add_definitions(-DBUILD_IS_DEBUG=$CONFIG:Debug) +set_property(TARGET add_definitions_command_with_target_prop_executable APPEND PROPERTY COMPILE_DEFINITIONS BUILD_IS_NOT_DEBUG=$NOT:$CONFIG:Debug) diff --git a/Tests/CompileDefinitions/compiletest.cpp b/Tests/CompileDefinitions/compiletest.cpp index f18e59e..14b8eab 100644 --- a/Tests/CompileDefinitions/compiletest.cpp +++ b/Tests/CompileDefinitions/compiletest.cpp @@ -45,6 +45,30 @@ enum { // TEST_GENERATOR_EXPRESSIONS #endif +#ifndef BUILD_IS_DEBUG +# error BUILD_IS_DEBUG not defined! +#endif +#ifndef BUILD_IS_NOT_DEBUG +# error BUILD_IS_NOT_DEBUG not defined! +#endif + +// Check per-config definitions. +#ifdef TEST_CONFIG_DEBUG +# if !BUILD_IS_DEBUG +# error BUILD_IS_DEBUG false
[Cmake-commits] CMake branch, next, updated. v2.8.10.2-2626-gc1562a6
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 c1562a65ec4d31dfd6ce54d0ef8e25a40e4a5ae2 (commit) via 8ce52229a80563295b8835c07b35d257e5cf2d77 (commit) via 48994338892d0c020e7abb51b08fb4b48be9e61d (commit) from 29ed9dde11d43d789951e3ce1d1ae3060126c1b2 (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=c1562a65ec4d31dfd6ce54d0ef8e25a40e4a5ae2 commit c1562a65ec4d31dfd6ce54d0ef8e25a40e4a5ae2 Merge: 29ed9dd 8ce5222 Author: Stephen Kelly steve...@gmail.com AuthorDate: Mon Mar 25 14:22:19 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Mon Mar 25 14:22:19 2013 -0400 Merge topic 'error-on-exported-missing-include-dir' into next 8ce5222 Make targets report an error on faulty INTERFACE on IMPORTED targets. 4899433 Ensure clean INTERFACE_INCLUDE_DIRECTORIES on install(EXPORT) http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8ce52229a80563295b8835c07b35d257e5cf2d77 commit 8ce52229a80563295b8835c07b35d257e5cf2d77 Author: Stephen Kelly steve...@gmail.com AuthorDate: Sun Mar 24 21:18:21 2013 +0100 Commit: Stephen Kelly steve...@gmail.com CommitDate: Mon Mar 25 19:00:20 2013 +0100 Make targets report an error on faulty INTERFACE on IMPORTED targets. It is considered an error if the INTERFACE_INCLUDE_DIRECTORIES contains a directory which does not exist, which indicates a programmer error by the upstream, or a packaging error. diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index 61d4ce2..2efeab0 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -131,11 +131,13 @@ public: SourceEntriesType SourceEntries; struct IncludeDirectoriesEntry { -IncludeDirectoriesEntry(cmsys::auto_ptrcmCompiledGeneratorExpression cge) - : ge(cge) +IncludeDirectoriesEntry(cmsys::auto_ptrcmCompiledGeneratorExpression cge, + const std::string targetName = std::string()) + : ge(cge), TargetName(targetName) {} const cmsys::auto_ptrcmCompiledGeneratorExpression ge; std::vectorstd::string CachedIncludes; +const std::string TargetName; }; std::vectorIncludeDirectoriesEntry* IncludeDirectoriesEntries; std::vectorcmValueWithOrigin LinkInterfaceIncludeDirectoriesEntries; @@ -2818,6 +2820,28 @@ static void processIncludeDirectories(cmTarget *tgt, for(std::vectorstd::string::iterator li = entryIncludes.begin(); li != entryIncludes.end(); ++li) { + cmTarget *dependentTarget = + mf-FindTargetToUse((*it)-TargetName.c_str()); + + const bool fromImported = dependentTarget + dependentTarget-IsImported(); + + if (fromImported !cmSystemTools::FileExists(li-c_str())) +{ +cmOStringStream e; +e Imported target \ (*it)-TargetName \ includes + non-existent path \ *li \ in its + INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:\n + * The path was deleted, renamed, or moved to another + location.\n + * An install or uninstall procedure did not complete + successfully.\n + * The installation package was faulty and references files it + does not provide.\n; +tgt-GetMakefile()-IssueMessage(cmake::FATAL_ERROR, e.str().c_str()); +return; +} + if (testIsOff !cmSystemTools::IsOff(li-c_str())) { cmSystemTools::ConvertToUnixSlashes(*li); @@ -2913,7 +2937,8 @@ std::vectorstd::string cmTarget::GetIncludeDirectories(const char *config) it-Value + ,INTERFACE_INCLUDE_DIRECTORIES); this-Internal-CachedLinkInterfaceIncludeDirectoriesEntries.push_back( -new cmTargetInternals::IncludeDirectoriesEntry(cge)); +new cmTargetInternals::IncludeDirectoriesEntry(cge, + it-Value)); } } http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=48994338892d0c020e7abb51b08fb4b48be9e61d commit 48994338892d0c020e7abb51b08fb4b48be9e61d Author: Stephen Kelly steve...@gmail.com AuthorDate: Sun Mar 24 21:18:17 2013 +0100 Commit: Stephen Kelly steve...@gmail.com CommitDate: Mon Mar 25 18:58:33 2013 +0100 Ensure clean INTERFACE_INCLUDE_DIRECTORIES on install(EXPORT) Check that source and binary directories are not part of the INTERFACE_INCLUDE_DIRECTORIES for installed IMPORTED targets. This is limited to directories which do not contain generator expressions to
[Cmake-commits] CMake branch, next, updated. v2.8.10.2-2630-g3167c36
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 3167c36e576b4c9cb8011b6e862278575ea2f8ba (commit) via 2e80f9f21f258aeca1537c0a1bafba5c4bdb623c (commit) from 2c0e2cd8f961efa75cebe042fd40375d8e2f8327 (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=3167c36e576b4c9cb8011b6e862278575ea2f8ba commit 3167c36e576b4c9cb8011b6e862278575ea2f8ba Merge: 2c0e2cd 2e80f9f Author: Stephen Kelly steve...@gmail.com AuthorDate: Mon Mar 25 14:34:46 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Mon Mar 25 14:34:46 2013 -0400 Merge topic 'fix-new-target-commands-docs' into next 2e80f9f Fix new target commands documentation. http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2e80f9f21f258aeca1537c0a1bafba5c4bdb623c commit 2e80f9f21f258aeca1537c0a1bafba5c4bdb623c Author: Stephen Kelly steve...@gmail.com AuthorDate: Mon Mar 25 19:23:01 2013 +0100 Commit: Stephen Kelly steve...@gmail.com CommitDate: Mon Mar 25 19:23:01 2013 +0100 Fix new target commands documentation. The target_include_directories and target_compile_defintions commands accepted targets as arguments until commit f6b16d4b (Don't allow targets args in the new target commands., 2013-01-29). This followed from discussion on the mailing list (target_include_directories() accepts only absolute paths ?, 2013-01-28): http://thread.gmane.org/gmane.comp.programming.tools.cmake.devel/5925/focus=5948 http://public.kitware.com/pipermail/cmake-developers/2013-January/006301.html It was also decided to allow relative paths in target_include_directories(). diff --git a/Source/cmTargetCompileDefinitionsCommand.h b/Source/cmTargetCompileDefinitionsCommand.h index c93cacb..ec9b071 100644 --- a/Source/cmTargetCompileDefinitionsCommand.h +++ b/Source/cmTargetCompileDefinitionsCommand.h @@ -56,8 +56,7 @@ public: target_compile_definitions(target INTERFACE|PUBLIC|PRIVATE [items1...]\n [INTERFACE|PUBLIC|PRIVATE [items2...] ...])\n - Specify compile definitions or targets to use when compiling a given - target. + Specify compile definitions to use when compiling a given target. The named target must have been created by a command such as add_executable or add_library and must not be an IMPORTED target. The INTERFACE, PUBLIC and PRIVATE keywords are required to specify @@ -65,8 +64,7 @@ public: populate the COMPILE_DEFINITIONS property of target. PUBLIC and INTERFACE items will populate the INTERFACE_COMPILE_DEFINITIONS property of target. - The non-scope arguments specify compile definitions or targets to use - INTERFACE_COMPILE_DEFINITIONS from. + The following arguments specify compile definitions. Repeated calls for the same target append items in the order called. \n Arguments to target_compile_definitions may use \generator diff --git a/Source/cmTargetIncludeDirectoriesCommand.h b/Source/cmTargetIncludeDirectoriesCommand.h index 2bc7bef..e4bc9cf 100644 --- a/Source/cmTargetIncludeDirectoriesCommand.h +++ b/Source/cmTargetIncludeDirectoriesCommand.h @@ -68,9 +68,8 @@ public: populate the INCLUDE_DIRECTORIES property of target. PUBLIC and INTERFACE items will populate the INTERFACE_INCLUDE_DIRECTORIES property of target. - The non-scope arguments specify either include directories or targets - to use INTERFACE_INCLUDE_DIRECTORIES from. Any specified include - directories must be absolute paths, not relative paths. + The following arguments specify include directories. Specified + include directories may be absolute paths or relative paths. Repeated calls for the same target append items in the order called. \n Arguments to target_include_directories may use \generator --- Summary of changes: Source/cmTargetCompileDefinitionsCommand.h |6 ++ Source/cmTargetIncludeDirectoriesCommand.h |5 ++--- 2 files changed, 4 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, next, updated. v2.8.10.2-2633-g1b73e5c
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 1b73e5cafe67d30830bd0f4e5da9a3aa60596a65 (commit) via 0df250edf368f1e1f2cfd835048a3fc56c29ef60 (commit) via a4d23e47aad911617426c9e575a3b4b77df67bbc (commit) from 3167c36e576b4c9cb8011b6e862278575ea2f8ba (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=1b73e5cafe67d30830bd0f4e5da9a3aa60596a65 commit 1b73e5cafe67d30830bd0f4e5da9a3aa60596a65 Merge: 3167c36 0df250e Author: Stephen Kelly steve...@gmail.com AuthorDate: Mon Mar 25 15:10:07 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Mon Mar 25 15:10:07 2013 -0400 Merge topic 'error-on-exported-missing-include-dir' into next 0df250e Add tests for new messages. a4d23e4 Add tests for new messages. http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0df250edf368f1e1f2cfd835048a3fc56c29ef60 commit 0df250edf368f1e1f2cfd835048a3fc56c29ef60 Author: Stephen Kelly steve...@gmail.com AuthorDate: Mon Mar 25 20:08:18 2013 +0100 Commit: Stephen Kelly steve...@gmail.com CommitDate: Mon Mar 25 20:09:01 2013 +0100 Add tests for new messages. diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index 2efeab0..b4fdcd5 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -2830,7 +2830,7 @@ static void processIncludeDirectories(cmTarget *tgt, { cmOStringStream e; e Imported target \ (*it)-TargetName \ includes - non-existent path \ *li \ in its + non-existent path\n \ *li \\nin its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:\n * The path was deleted, renamed, or moved to another location.\n diff --git a/Tests/RunCMake/include_directories/ImportedTarget-result.txt b/Tests/RunCMake/include_directories/ImportedTarget-result.txt new file mode 100644 index 000..d00491f --- /dev/null +++ b/Tests/RunCMake/include_directories/ImportedTarget-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/include_directories/ImportedTarget-stderr.txt b/Tests/RunCMake/include_directories/ImportedTarget-stderr.txt new file mode 100644 index 000..da26052 --- /dev/null +++ b/Tests/RunCMake/include_directories/ImportedTarget-stderr.txt @@ -0,0 +1,13 @@ +CMake Error in CMakeLists.txt: + Imported target imported includes non-existent path + +/does/not/exist + + in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include: + + \* The path was deleted, renamed, or moved to another location. + + \* An install or uninstall procedure did not complete successfully. + + \* The installation package was faulty and references files it does not + provide. diff --git a/Tests/RunCMake/include_directories/ImportedTarget.cmake b/Tests/RunCMake/include_directories/ImportedTarget.cmake new file mode 100644 index 000..e1a20b1 --- /dev/null +++ b/Tests/RunCMake/include_directories/ImportedTarget.cmake @@ -0,0 +1,9 @@ + +project(ImportedTarget) + +add_library(testTarget ${CMAKE_CURRENT_SOURCE_DIR}/empty.cpp) + +add_library(imported UNKNOWN IMPORTED) +set_property(TARGET imported PROPERTY INTERFACE_INCLUDE_DIRECTORIES /does/not/exist) + +target_link_libraries(testTarget imported) diff --git a/Tests/RunCMake/include_directories/RunCMakeTest.cmake b/Tests/RunCMake/include_directories/RunCMakeTest.cmake index bd299fc..1caae5c 100644 --- a/Tests/RunCMake/include_directories/RunCMakeTest.cmake +++ b/Tests/RunCMake/include_directories/RunCMakeTest.cmake @@ -6,3 +6,4 @@ run_cmake(TID-bad-target) run_cmake(SourceDirectoryInInterface) run_cmake(BinaryDirectoryInInterface) run_cmake(RelativePathInInterface) +run_cmake(ImportedTarget) http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a4d23e47aad911617426c9e575a3b4b77df67bbc commit a4d23e47aad911617426c9e575a3b4b77df67bbc Author: Stephen Kelly steve...@gmail.com AuthorDate: Mon Mar 25 20:07:53 2013 +0100 Commit: Stephen Kelly steve...@gmail.com CommitDate: Mon Mar 25 20:08:48 2013 +0100 Add tests for new messages. diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx index b0a0dbf..24940aa 100644 --- a/Source/cmExportFileGenerator.cxx +++ b/Source/cmExportFileGenerator.cxx @@ -203,8 +203,8 @@ static bool checkInterfaceDirs(const std::string prepro, { cmOStringStream e; e Target \ target-GetName() \ - INTERFACE_INCLUDE_DIRECTORIES property contains relative path \ - *li \.; + INTERFACE_INCLUDE_DIRECTORIES property contains relative path:\n + \ *li \;
[Cmake-commits] CMake branch, next, updated. v2.8.10.2-2636-g8e89529
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 8e89529306ee554e386a793269525ba62eab07e7 (commit) via 28fb0bf06fa4de19845c48df18e4b349683388e6 (commit) via e03ce28f4d865623c78b4e1715086fe84db8d0cc (commit) from 1b73e5cafe67d30830bd0f4e5da9a3aa60596a65 (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=8e89529306ee554e386a793269525ba62eab07e7 commit 8e89529306ee554e386a793269525ba62eab07e7 Merge: 1b73e5c 28fb0bf Author: Stephen Kelly steve...@gmail.com AuthorDate: Mon Mar 25 15:11:11 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Mon Mar 25 15:11:11 2013 -0400 Merge topic 'error-on-exported-missing-include-dir' into next 28fb0bf Make targets report an error on faulty INTERFACE on IMPORTED targets. e03ce28 Ensure clean INTERFACE_INCLUDE_DIRECTORIES on install(EXPORT) http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=28fb0bf06fa4de19845c48df18e4b349683388e6 commit 28fb0bf06fa4de19845c48df18e4b349683388e6 Author: Stephen Kelly steve...@gmail.com AuthorDate: Sun Mar 24 21:18:21 2013 +0100 Commit: Stephen Kelly steve...@gmail.com CommitDate: Mon Mar 25 20:10:18 2013 +0100 Make targets report an error on faulty INTERFACE on IMPORTED targets. It is considered an error if the INTERFACE_INCLUDE_DIRECTORIES contains a directory which does not exist, which indicates a programmer error by the upstream, or a packaging error. diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index 61d4ce2..b4fdcd5 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -131,11 +131,13 @@ public: SourceEntriesType SourceEntries; struct IncludeDirectoriesEntry { -IncludeDirectoriesEntry(cmsys::auto_ptrcmCompiledGeneratorExpression cge) - : ge(cge) +IncludeDirectoriesEntry(cmsys::auto_ptrcmCompiledGeneratorExpression cge, + const std::string targetName = std::string()) + : ge(cge), TargetName(targetName) {} const cmsys::auto_ptrcmCompiledGeneratorExpression ge; std::vectorstd::string CachedIncludes; +const std::string TargetName; }; std::vectorIncludeDirectoriesEntry* IncludeDirectoriesEntries; std::vectorcmValueWithOrigin LinkInterfaceIncludeDirectoriesEntries; @@ -2818,6 +2820,28 @@ static void processIncludeDirectories(cmTarget *tgt, for(std::vectorstd::string::iterator li = entryIncludes.begin(); li != entryIncludes.end(); ++li) { + cmTarget *dependentTarget = + mf-FindTargetToUse((*it)-TargetName.c_str()); + + const bool fromImported = dependentTarget + dependentTarget-IsImported(); + + if (fromImported !cmSystemTools::FileExists(li-c_str())) +{ +cmOStringStream e; +e Imported target \ (*it)-TargetName \ includes + non-existent path\n \ *li \\nin its + INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:\n + * The path was deleted, renamed, or moved to another + location.\n + * An install or uninstall procedure did not complete + successfully.\n + * The installation package was faulty and references files it + does not provide.\n; +tgt-GetMakefile()-IssueMessage(cmake::FATAL_ERROR, e.str().c_str()); +return; +} + if (testIsOff !cmSystemTools::IsOff(li-c_str())) { cmSystemTools::ConvertToUnixSlashes(*li); @@ -2913,7 +2937,8 @@ std::vectorstd::string cmTarget::GetIncludeDirectories(const char *config) it-Value + ,INTERFACE_INCLUDE_DIRECTORIES); this-Internal-CachedLinkInterfaceIncludeDirectoriesEntries.push_back( -new cmTargetInternals::IncludeDirectoriesEntry(cge)); +new cmTargetInternals::IncludeDirectoriesEntry(cge, + it-Value)); } } diff --git a/Tests/RunCMake/include_directories/ImportedTarget-result.txt b/Tests/RunCMake/include_directories/ImportedTarget-result.txt new file mode 100644 index 000..d00491f --- /dev/null +++ b/Tests/RunCMake/include_directories/ImportedTarget-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/include_directories/ImportedTarget-stderr.txt b/Tests/RunCMake/include_directories/ImportedTarget-stderr.txt new file mode 100644 index 000..da26052 --- /dev/null +++ b/Tests/RunCMake/include_directories/ImportedTarget-stderr.txt @@ -0,0 +1,13 @@ +CMake Error in CMakeLists.txt: + Imported
[Cmake-commits] CMake branch, next, updated. v2.8.10.2-2638-g6e7a8f7
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 6e7a8f7c18f6ea65d9ab38ff6b3eb33ad4435ddd (commit) via 1d7a18141a9b8265f8df6afa777a6260b9cfcb06 (commit) from 8e89529306ee554e386a793269525ba62eab07e7 (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=6e7a8f7c18f6ea65d9ab38ff6b3eb33ad4435ddd commit 6e7a8f7c18f6ea65d9ab38ff6b3eb33ad4435ddd Merge: 8e89529 1d7a181 Author: Stephen Kelly steve...@gmail.com AuthorDate: Mon Mar 25 15:17:40 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Mon Mar 25 15:17:40 2013 -0400 Merge topic 'error-on-exported-missing-include-dir' into next 1d7a181 Fix style. http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1d7a18141a9b8265f8df6afa777a6260b9cfcb06 commit 1d7a18141a9b8265f8df6afa777a6260b9cfcb06 Author: Stephen Kelly steve...@gmail.com AuthorDate: Mon Mar 25 20:16:12 2013 +0100 Commit: Stephen Kelly steve...@gmail.com CommitDate: Mon Mar 25 20:16:12 2013 +0100 Fix style. diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx index 24940aa..27ec56b 100644 --- a/Source/cmExportFileGenerator.cxx +++ b/Source/cmExportFileGenerator.cxx @@ -179,7 +179,8 @@ static bool isSubDirectory(const char* a, const char* b) static bool checkInterfaceDirs(const std::string prepro, cmTarget *target) { - const char* installDir = target-GetMakefile()-GetSafeDefinition(CMAKE_INSTALL_PREFIX); + const char* installDir = +target-GetMakefile()-GetSafeDefinition(CMAKE_INSTALL_PREFIX); const char* topSourceDir = target-GetMakefile()-GetHomeDirectory(); const char* topBinaryDir = target-GetMakefile()-GetHomeOutputDirectory(); --- Summary of changes: Source/cmExportFileGenerator.cxx |3 ++- 1 files changed, 2 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.10.2-2641-g17fe46a
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 17fe46a437bb8ce2400cdf1e8a7f89c7b0373b71 (commit) via 6253d6f13fb90fea2504f4cd2372ab5e6d689155 (commit) via 8062909b84669766cb19a50ff85867aa6a26 (commit) from 6e7a8f7c18f6ea65d9ab38ff6b3eb33ad4435ddd (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=17fe46a437bb8ce2400cdf1e8a7f89c7b0373b71 commit 17fe46a437bb8ce2400cdf1e8a7f89c7b0373b71 Merge: 6e7a8f7 6253d6f Author: Stephen Kelly steve...@gmail.com AuthorDate: Mon Mar 25 15:18:03 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Mon Mar 25 15:18:03 2013 -0400 Merge topic 'error-on-exported-missing-include-dir' into next 6253d6f Make targets report an error on faulty INTERFACE on IMPORTED targets. 8062909 Ensure clean INTERFACE_INCLUDE_DIRECTORIES on install(EXPORT) http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6253d6f13fb90fea2504f4cd2372ab5e6d689155 commit 6253d6f13fb90fea2504f4cd2372ab5e6d689155 Author: Stephen Kelly steve...@gmail.com AuthorDate: Sun Mar 24 21:18:21 2013 +0100 Commit: Stephen Kelly steve...@gmail.com CommitDate: Mon Mar 25 20:17:15 2013 +0100 Make targets report an error on faulty INTERFACE on IMPORTED targets. It is considered an error if the INTERFACE_INCLUDE_DIRECTORIES contains a directory which does not exist, which indicates a programmer error by the upstream, or a packaging error. diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index 61d4ce2..b4fdcd5 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -131,11 +131,13 @@ public: SourceEntriesType SourceEntries; struct IncludeDirectoriesEntry { -IncludeDirectoriesEntry(cmsys::auto_ptrcmCompiledGeneratorExpression cge) - : ge(cge) +IncludeDirectoriesEntry(cmsys::auto_ptrcmCompiledGeneratorExpression cge, + const std::string targetName = std::string()) + : ge(cge), TargetName(targetName) {} const cmsys::auto_ptrcmCompiledGeneratorExpression ge; std::vectorstd::string CachedIncludes; +const std::string TargetName; }; std::vectorIncludeDirectoriesEntry* IncludeDirectoriesEntries; std::vectorcmValueWithOrigin LinkInterfaceIncludeDirectoriesEntries; @@ -2818,6 +2820,28 @@ static void processIncludeDirectories(cmTarget *tgt, for(std::vectorstd::string::iterator li = entryIncludes.begin(); li != entryIncludes.end(); ++li) { + cmTarget *dependentTarget = + mf-FindTargetToUse((*it)-TargetName.c_str()); + + const bool fromImported = dependentTarget + dependentTarget-IsImported(); + + if (fromImported !cmSystemTools::FileExists(li-c_str())) +{ +cmOStringStream e; +e Imported target \ (*it)-TargetName \ includes + non-existent path\n \ *li \\nin its + INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:\n + * The path was deleted, renamed, or moved to another + location.\n + * An install or uninstall procedure did not complete + successfully.\n + * The installation package was faulty and references files it + does not provide.\n; +tgt-GetMakefile()-IssueMessage(cmake::FATAL_ERROR, e.str().c_str()); +return; +} + if (testIsOff !cmSystemTools::IsOff(li-c_str())) { cmSystemTools::ConvertToUnixSlashes(*li); @@ -2913,7 +2937,8 @@ std::vectorstd::string cmTarget::GetIncludeDirectories(const char *config) it-Value + ,INTERFACE_INCLUDE_DIRECTORIES); this-Internal-CachedLinkInterfaceIncludeDirectoriesEntries.push_back( -new cmTargetInternals::IncludeDirectoriesEntry(cge)); +new cmTargetInternals::IncludeDirectoriesEntry(cge, + it-Value)); } } diff --git a/Tests/RunCMake/include_directories/ImportedTarget-result.txt b/Tests/RunCMake/include_directories/ImportedTarget-result.txt new file mode 100644 index 000..d00491f --- /dev/null +++ b/Tests/RunCMake/include_directories/ImportedTarget-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/include_directories/ImportedTarget-stderr.txt b/Tests/RunCMake/include_directories/ImportedTarget-stderr.txt new file mode 100644 index 000..da26052 --- /dev/null +++ b/Tests/RunCMake/include_directories/ImportedTarget-stderr.txt @@ -0,0 +1,13 @@ +CMake Error in CMakeLists.txt: + Imported
[Cmake-commits] CMake branch, next, updated. v2.8.10.2-2643-g289c3d1
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 289c3d10c21cd56c223017bd6c8b3cb6f4fccd1a (commit) via 909b9f7926e839c5c8e081fea7eec0d8edcf7f12 (commit) from 17fe46a437bb8ce2400cdf1e8a7f89c7b0373b71 (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=289c3d10c21cd56c223017bd6c8b3cb6f4fccd1a commit 289c3d10c21cd56c223017bd6c8b3cb6f4fccd1a Merge: 17fe46a 909b9f7 Author: Bill Hoffman bill.hoff...@kitware.com AuthorDate: Mon Mar 25 15:20:10 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Mon Mar 25 15:20:10 2013 -0400 Merge topic 'ep_retry_clone' into next 909b9f7 Incremenat the number of trys for git clones. http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=909b9f7926e839c5c8e081fea7eec0d8edcf7f12 commit 909b9f7926e839c5c8e081fea7eec0d8edcf7f12 Author: Bill Hoffman bill.hoff...@kitware.com AuthorDate: Mon Mar 25 15:18:37 2013 -0400 Commit: Bill Hoffman bill.hoff...@kitware.com CommitDate: Mon Mar 25 15:18:37 2013 -0400 Incremenat the number of trys for git clones. This fixes a bug where the number of try variable was not incremented each time a git clone was attempted. diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake index 95ec171..40e14d5 100644 --- a/Modules/ExternalProject.cmake +++ b/Modules/ExternalProject.cmake @@ -296,6 +296,7 @@ while(error_code AND number_of_tries LESS 3) WORKING_DIRECTORY \${work_dir}\ RESULT_VARIABLE error_code ) + math(EXPR number_of_tries \\${number_of_tries} + 1\) endwhile() if(number_of_tries GREATER 1) message(STATUS \Had to git clone more than once: --- Summary of changes: Modules/ExternalProject.cmake |1 + 1 files changed, 1 insertions(+), 0 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.10.2-2647-gc34b9f0
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 c34b9f01eee582d32ee12d75d81d3a477c5bffac (commit) via 13278bca1146370ae4c4538457fa6a130595e523 (commit) from d9546441018650c76e6bfdd19e704dac7057ad6c (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=c34b9f01eee582d32ee12d75d81d3a477c5bffac commit c34b9f01eee582d32ee12d75d81d3a477c5bffac Merge: d954644 13278bc Author: Stephen Kelly steve...@gmail.com AuthorDate: Mon Mar 25 15:25:12 2013 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Mon Mar 25 15:25:12 2013 -0400 Merge topic 'error-on-exported-missing-include-dir' into next 13278bc Make targets report an error on faulty INTERFACE on IMPORTED targets. http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=13278bca1146370ae4c4538457fa6a130595e523 commit 13278bca1146370ae4c4538457fa6a130595e523 Author: Stephen Kelly steve...@gmail.com AuthorDate: Sun Mar 24 21:18:21 2013 +0100 Commit: Stephen Kelly steve...@gmail.com CommitDate: Mon Mar 25 20:23:42 2013 +0100 Make targets report an error on faulty INTERFACE on IMPORTED targets. It is considered an error if the INTERFACE_INCLUDE_DIRECTORIES contains a directory which does not exist, which indicates a programmer error by the upstream, or a packaging error. One of the RunCMake.CompatibleInterface tests also needs to be updated due to this change. Non-existant includes were used in the test, but are not needed. diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index 61d4ce2..b4fdcd5 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -131,11 +131,13 @@ public: SourceEntriesType SourceEntries; struct IncludeDirectoriesEntry { -IncludeDirectoriesEntry(cmsys::auto_ptrcmCompiledGeneratorExpression cge) - : ge(cge) +IncludeDirectoriesEntry(cmsys::auto_ptrcmCompiledGeneratorExpression cge, + const std::string targetName = std::string()) + : ge(cge), TargetName(targetName) {} const cmsys::auto_ptrcmCompiledGeneratorExpression ge; std::vectorstd::string CachedIncludes; +const std::string TargetName; }; std::vectorIncludeDirectoriesEntry* IncludeDirectoriesEntries; std::vectorcmValueWithOrigin LinkInterfaceIncludeDirectoriesEntries; @@ -2818,6 +2820,28 @@ static void processIncludeDirectories(cmTarget *tgt, for(std::vectorstd::string::iterator li = entryIncludes.begin(); li != entryIncludes.end(); ++li) { + cmTarget *dependentTarget = + mf-FindTargetToUse((*it)-TargetName.c_str()); + + const bool fromImported = dependentTarget + dependentTarget-IsImported(); + + if (fromImported !cmSystemTools::FileExists(li-c_str())) +{ +cmOStringStream e; +e Imported target \ (*it)-TargetName \ includes + non-existent path\n \ *li \\nin its + INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:\n + * The path was deleted, renamed, or moved to another + location.\n + * An install or uninstall procedure did not complete + successfully.\n + * The installation package was faulty and references files it + does not provide.\n; +tgt-GetMakefile()-IssueMessage(cmake::FATAL_ERROR, e.str().c_str()); +return; +} + if (testIsOff !cmSystemTools::IsOff(li-c_str())) { cmSystemTools::ConvertToUnixSlashes(*li); @@ -2913,7 +2937,8 @@ std::vectorstd::string cmTarget::GetIncludeDirectories(const char *config) it-Value + ,INTERFACE_INCLUDE_DIRECTORIES); this-Internal-CachedLinkInterfaceIncludeDirectoriesEntries.push_back( -new cmTargetInternals::IncludeDirectoriesEntry(cge)); +new cmTargetInternals::IncludeDirectoriesEntry(cge, + it-Value)); } } diff --git a/Tests/RunCMake/CompatibleInterface/InterfaceString-builtin-prop.cmake b/Tests/RunCMake/CompatibleInterface/InterfaceString-builtin-prop.cmake index 5221a12..5772856 100644 --- a/Tests/RunCMake/CompatibleInterface/InterfaceString-builtin-prop.cmake +++ b/Tests/RunCMake/CompatibleInterface/InterfaceString-builtin-prop.cmake @@ -3,8 +3,6 @@ add_library(foo UNKNOWN IMPORTED) add_library(bar UNKNOWN IMPORTED) set_property(TARGET foo APPEND PROPERTY COMPATIBLE_INTERFACE_STRING INCLUDE_DIRECTORIES) -set_property(TARGET foo PROPERTY
[Cmake-commits] CMake branch, master, updated. v2.8.10.2-936-g2fcb060
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 2fcb06039daa4492c05fa346465028ea0b3d4eff (commit) from ddbe2e1d7da460684e4d81fc8b3f69510f87b78e (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=2fcb06039daa4492c05fa346465028ea0b3d4eff commit 2fcb06039daa4492c05fa346465028ea0b3d4eff Author: Kitware Robot kwro...@kitware.com AuthorDate: Tue Mar 26 00:01:08 2013 -0400 Commit: Kitware Robot kwro...@kitware.com CommitDate: Tue Mar 26 00:01:08 2013 -0400 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 27e313a..a860daf 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 10) -set(CMake_VERSION_TWEAK 20130325) +set(CMake_VERSION_TWEAK 20130326) #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