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 cab81f23cb59bd5cbd50970a91d42f4a465a79e6 (commit) via eed2637e99955c8c762ad1deea65877c43bd1a22 (commit) via 254687d31f2f45b0d3ce9085c013ab0e15b360de (commit) via efdf152fe1582be3e39f3a16e0ddaeb386fe1c20 (commit) from d559bec27163c17935eb2cbeab0e41cf0e8fbdc5 (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=cab81f23cb59bd5cbd50970a91d42f4a465a79e6 commit cab81f23cb59bd5cbd50970a91d42f4a465a79e6 Merge: d559bec eed2637 Author: Stephen Kelly <steve...@gmail.com> AuthorDate: Wed Mar 6 11:46:39 2013 -0500 Commit: CMake Topic Stage <kwro...@kitware.com> CommitDate: Wed Mar 6 11:46:39 2013 -0500 Merge topic 'fix-transitive-target-names' into next eed2637 Extend the range of valid target names with the + sign. 254687d Only process transitive interface properties for valid target names. efdf152 CMake Nightly Date Stamp http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=eed2637e99955c8c762ad1deea65877c43bd1a22 commit eed2637e99955c8c762ad1deea65877c43bd1a22 Author: Stephen Kelly <steve...@gmail.com> AuthorDate: Wed Mar 6 17:26:40 2013 +0100 Commit: Stephen Kelly <steve...@gmail.com> CommitDate: Wed Mar 6 17:43:23 2013 +0100 Extend the range of valid target names with the + sign. As noted in #13986, this character can commonly be used for target names, such as those containing 'c++'. Suggested-By: Benjamin Kloster diff --git a/Source/cmGeneratorExpression.cxx b/Source/cmGeneratorExpression.cxx index 7ea58fa..3f59129 100644 --- a/Source/cmGeneratorExpression.cxx +++ b/Source/cmGeneratorExpression.cxx @@ -393,7 +393,7 @@ bool cmGeneratorExpression::IsValidTargetName(const std::string &input) cmsys::RegularExpression targetNameValidator; // The ':' is supported to allow use with IMPORTED targets. At least // Qt 4 and 5 IMPORTED targets use ':' as the namespace delimiter. - targetNameValidator.compile("^[A-Za-z0-9_.:-]+$"); + targetNameValidator.compile("^[A-Za-z0-9_.:+-]+$"); return targetNameValidator.find(input.c_str()); } diff --git a/Tests/CMakeCommands/target_link_libraries/CMakeLists.txt b/Tests/CMakeCommands/target_link_libraries/CMakeLists.txt index b13c13d..e4cb217 100644 --- a/Tests/CMakeCommands/target_link_libraries/CMakeLists.txt +++ b/Tests/CMakeCommands/target_link_libraries/CMakeLists.txt @@ -102,7 +102,11 @@ target_compile_definitions(depG INTERFACE TEST_DEF ) +# Linking to a target containing a + should be non-fatal. +add_library(wrapc++ empty.cpp) + add_executable(targetC targetC.cpp) +target_link_libraries(targetC wrapc++) # The TARGET_PROPERTY expression is duplicated below to test that there is no # shortcutting of the evaluation by returning an empty string. set(_exe_test $<STREQUAL:$<TARGET_PROPERTY:TYPE>,EXECUTABLE>) http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=254687d31f2f45b0d3ce9085c013ab0e15b360de commit 254687d31f2f45b0d3ce9085c013ab0e15b360de Author: Stephen Kelly <steve...@gmail.com> AuthorDate: Wed Mar 6 17:15:57 2013 +0100 Commit: Stephen Kelly <steve...@gmail.com> CommitDate: Wed Mar 6 17:42:08 2013 +0100 Only process transitive interface properties for valid target names. Commit a1c4905f (Use the link information as a source of compile definitions and includes., 2013-02-12) introduced the use of link information as the source of target properties via the TARGET_PROPERTY generator expression. This generator expression has a strict interpretation of a valid target name and emits a fatal error for invalid names. Ensure that only targets with names valid for use with TARGET_PROPERTY or targets which are determined by generator expressions are processed by it. This means that at worst, invalid target names do not participate in the transitive evaluation of properties, but the validation generator expression can be extended where needed to resolve that. diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index f38b16e..d46325b 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -2898,7 +2898,8 @@ std::vector<std::string> cmTarget::GetIncludeDirectories(const char *config) ge.Parse(it->Value); std::string result = cge->Evaluate(this->Makefile, config, false, this, 0, 0); - if (!this->Makefile->FindTargetToUse(result.c_str())) + if (!cmGeneratorExpression::IsValidTargetName(result.c_str()) + || !this->Makefile->FindTargetToUse(result.c_str())) { continue; } @@ -2975,7 +2976,9 @@ std::string cmTarget::GetCompileDefinitions(const char *config) for (std::vector<std::string>::const_iterator it = libs.begin(); it != libs.end(); ++it) { - if (this->Makefile->FindTargetToUse(it->c_str())) + if ((cmGeneratorExpression::IsValidTargetName(it->c_str()) + || cmGeneratorExpression::Find(it->c_str()) != std::string::npos) + && this->Makefile->FindTargetToUse(it->c_str())) { depString += sep + "$<TARGET_PROPERTY:" + *it + ",INTERFACE_COMPILE_DEFINITIONS>"; ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- Source/cmGeneratorExpression.cxx | 2 +- Source/cmTarget.cxx | 7 +++++-- .../target_link_libraries/CMakeLists.txt | 4 ++++ 4 files changed, 11 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