diff options
author | Stephen Kelly <steveire@gmail.com> | 2013-10-07 11:24:41 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2013-10-07 12:17:12 (GMT) |
commit | 6f98f4ac92a789a310cc7d9965556b4a8439654f (patch) | |
tree | 60f95720ba38972890b6a9d9b9040c7f649d98a1 | |
parent | 5b98d09e803270e57aa9a13ad53a144b95b58abc (diff) | |
download | CMake-6f98f4ac92a789a310cc7d9965556b4a8439654f.zip CMake-6f98f4ac92a789a310cc7d9965556b4a8439654f.tar.gz CMake-6f98f4ac92a789a310cc7d9965556b4a8439654f.tar.bz2 |
Genex: Fix processing multiple include directories for relative paths
Re-insert the semicolon which was removed during splitting.
Commit d777b8e7 (Genex: Allow relative paths in INSTALL_INTERFACE.,
2013-07-25) introduced the prefixItems method to allow relative paths
in the argument of the INSTALL_INTERFACE expression. That method was
buggy in that it did not re-introduce the semicolon separator in
the result.
This bug also affects paths which are already absolute in user code.
-rw-r--r-- | Source/cmGeneratorExpression.cxx | 3 | ||||
-rw-r--r-- | Tests/ExportImport/Export/CMakeLists.txt | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/Source/cmGeneratorExpression.cxx b/Source/cmGeneratorExpression.cxx index 127cf6b..d73c72c 100644 --- a/Source/cmGeneratorExpression.cxx +++ b/Source/cmGeneratorExpression.cxx @@ -238,9 +238,12 @@ static void prefixItems(const std::string &content, std::string &result, { std::vector<std::string> entries; cmGeneratorExpression::Split(content, entries); + const char *sep = ""; for(std::vector<std::string>::const_iterator ei = entries.begin(); ei != entries.end(); ++ei) { + result += sep; + sep = ";"; if (!cmSystemTools::FileIsFullPath(ei->c_str()) && cmGeneratorExpression::Find(*ei) == std::string::npos) { diff --git a/Tests/ExportImport/Export/CMakeLists.txt b/Tests/ExportImport/Export/CMakeLists.txt index 1f23b2a..72ae78f 100644 --- a/Tests/ExportImport/Export/CMakeLists.txt +++ b/Tests/ExportImport/Export/CMakeLists.txt @@ -159,7 +159,7 @@ set_property(TARGET testLibRequired APPEND PROPERTY $<BUILD_INTERFACE:$<TARGET_PROPERTY:testLibIncludeRequired5,INTERFACE_INCLUDE_DIRECTORIES>> # Test that the below is non-fatal $<$<STREQUAL:one,two>:$<TARGET_PROPERTY:not_a_target,INTERFACE_INCLUDE_DIRECTORIES>> - $<INSTALL_INTERFACE:include/testLibIncludeRequired7> + $<INSTALL_INTERFACE:include/testLibIncludeRequired7;include/testLibIncludeRequired4> ) set_property(TARGET testLibRequired APPEND PROPERTY |