diff options
author | Stephen Kelly <steveire@gmail.com> | 2013-11-26 09:54:27 (GMT) |
---|---|---|
committer | Stephen Kelly <steveire@gmail.com> | 2013-11-26 12:01:53 (GMT) |
commit | 7a3e45b9d469e468e4db867d51e92ceeed132b79 (patch) | |
tree | 799987b5d663c5c143e948c2fee897dad9ef4218 | |
parent | f088a3245001350f9c429e27bd12a3394742b0b8 (diff) | |
download | CMake-7a3e45b9d469e468e4db867d51e92ceeed132b79.zip CMake-7a3e45b9d469e468e4db867d51e92ceeed132b79.tar.gz CMake-7a3e45b9d469e468e4db867d51e92ceeed132b79.tar.bz2 |
Export: Prefix relative items with genexes in INSTALL_INTERFACE.
Code such as
target_include_directories(foo INTERFACE
$<INSTALL_INTERFACE:include$<FOO>>
)
should be treated as a relative directory, despite the genex, after
the INSTALL_INTERFACE is stripped away.
Previously, this would generate a relative directory on export, which
would be an error on import, so no policy is needed.
-rw-r--r-- | Source/cmGeneratorExpression.cxx | 2 | ||||
-rw-r--r-- | Tests/ExportImport/Export/CMakeLists.txt | 8 | ||||
-rw-r--r-- | Tests/ExportImport/Import/A/deps_iface.c | 1 |
3 files changed, 10 insertions, 1 deletions
diff --git a/Source/cmGeneratorExpression.cxx b/Source/cmGeneratorExpression.cxx index f34a35b..2e66d78 100644 --- a/Source/cmGeneratorExpression.cxx +++ b/Source/cmGeneratorExpression.cxx @@ -245,7 +245,7 @@ static void prefixItems(const std::string &content, std::string &result, result += sep; sep = ";"; if (!cmSystemTools::FileIsFullPath(ei->c_str()) - && cmGeneratorExpression::Find(*ei) == std::string::npos) + && cmGeneratorExpression::Find(*ei) != 0) { result += prefix; } diff --git a/Tests/ExportImport/Export/CMakeLists.txt b/Tests/ExportImport/Export/CMakeLists.txt index 89c767f..0e2828e 100644 --- a/Tests/ExportImport/Export/CMakeLists.txt +++ b/Tests/ExportImport/Export/CMakeLists.txt @@ -327,6 +327,8 @@ target_include_directories(testLibRequired INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest5$<0:>> $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/$<0:>installIncludesTest6> $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest7> + $<INSTALL_INTERFACE:installIncludesTest8/$<0:>> + $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest8$<0:>> ) install(TARGETS testLibIncludeRequired1 @@ -360,6 +362,8 @@ file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest6") file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest6/installIncludesTest6.h" "// No content\n") file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest7") file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest7/installIncludesTest7.h" "// No content\n") +file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest8") +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest8/installIncludesTest8.h" "// No content\n") install(FILES "${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest/installIncludesTest.h" DESTINATION installIncludesTest @@ -388,6 +392,10 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest7/installIncludesTest7.h" DESTINATION installIncludesTest7 ) +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest8/installIncludesTest8.h" + DESTINATION installIncludesTest8 +) install(TARGETS testLibDepends testSharedLibDepends EXPORT DependsExp DESTINATION lib ) install(EXPORT DependsExp FILE testLibDependsTargets.cmake DESTINATION lib/cmake/testLibDepends) diff --git a/Tests/ExportImport/Import/A/deps_iface.c b/Tests/ExportImport/Import/A/deps_iface.c index 0dc8be2..953d0ad 100644 --- a/Tests/ExportImport/Import/A/deps_iface.c +++ b/Tests/ExportImport/Import/A/deps_iface.c @@ -11,6 +11,7 @@ #include "installIncludesTest5.h" #include "installIncludesTest6.h" #include "installIncludesTest7.h" +#include "installIncludesTest8.h" #ifndef testLibRequired_IFACE_DEFINE #error Expected testLibRequired_IFACE_DEFINE |