diff options
author | Stephen Kelly <steveire@gmail.com> | 2013-01-05 11:13:49 (GMT) |
---|---|---|
committer | Stephen Kelly <steveire@gmail.com> | 2013-07-24 15:32:58 (GMT) |
commit | 650e61f833c2cc3ace8405a22eb80a10cfc6187c (patch) | |
tree | 5cf31f8d89fab889dc622bf5f0f751dd0cb4db3e /Tests | |
parent | ff6de6d325fec9b4f257b27388be4a24fd8cadfe (diff) | |
download | CMake-650e61f833c2cc3ace8405a22eb80a10cfc6187c.zip CMake-650e61f833c2cc3ace8405a22eb80a10cfc6187c.tar.gz CMake-650e61f833c2cc3ace8405a22eb80a10cfc6187c.tar.bz2 |
Add a convenient way to add the includes install dir to the INTERFACE.
Export the INCLUDES DESTINATION without appending to the
INTERFACE_INCLUDE_DIRECTORIES of the target itself. That way, a target
can be exported multiple times with different INCLUDES DESTINATION
without unintended cross-pollution of export sets.
Diffstat (limited to 'Tests')
6 files changed, 31 insertions, 1 deletions
diff --git a/Tests/ExportImport/Export/CMakeLists.txt b/Tests/ExportImport/Export/CMakeLists.txt index 370dffe..737ec43 100644 --- a/Tests/ExportImport/Export/CMakeLists.txt +++ b/Tests/ExportImport/Export/CMakeLists.txt @@ -270,9 +270,26 @@ install(TARGETS testLibRequired testLibIncludeRequired5 testLibIncludeRequired6 testSharedLibRequired - EXPORT RequiredExp DESTINATION lib ) + EXPORT RequiredExp DESTINATION lib + INCLUDES DESTINATION + installIncludesTest + $<INSTALL_PREFIX>/installIncludesTest2) install(EXPORT RequiredExp NAMESPACE Req:: FILE testLibRequiredTargets.cmake DESTINATION lib/cmake/testLibRequired) +file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest") +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest/installIncludesTest.h" "// No content\n") + +file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest2") +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest2/installIncludesTest2.h" "// No content\n") +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest/installIncludesTest.h" + DESTINATION installIncludesTest +) +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest2/installIncludesTest2.h" + DESTINATION installIncludesTest2 +) + 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 e73ca26..d9dc331 100644 --- a/Tests/ExportImport/Import/A/deps_iface.c +++ b/Tests/ExportImport/Import/A/deps_iface.c @@ -3,6 +3,9 @@ #include "testLibIncludeRequired2.h" #include "testLibIncludeRequired6.h" +#include "installIncludesTest.h" +#include "installIncludesTest2.h" + #ifndef testLibRequired_IFACE_DEFINE #error Expected testLibRequired_IFACE_DEFINE #endif diff --git a/Tests/RunCMake/include_directories/RunCMakeTest.cmake b/Tests/RunCMake/include_directories/RunCMakeTest.cmake index 520dd44..e582960 100644 --- a/Tests/RunCMake/include_directories/RunCMakeTest.cmake +++ b/Tests/RunCMake/include_directories/RunCMakeTest.cmake @@ -9,3 +9,4 @@ run_cmake(RelativePathInInterface) run_cmake(ImportedTarget) run_cmake(RelativePathInGenex) run_cmake(CMP0021) +run_cmake(TargetInterfaceIncludes) diff --git a/Tests/RunCMake/include_directories/TargetInterfaceIncludes-result.txt b/Tests/RunCMake/include_directories/TargetInterfaceIncludes-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/include_directories/TargetInterfaceIncludes-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/include_directories/TargetInterfaceIncludes-stderr.txt b/Tests/RunCMake/include_directories/TargetInterfaceIncludes-stderr.txt new file mode 100644 index 0000000..d153927 --- /dev/null +++ b/Tests/RunCMake/include_directories/TargetInterfaceIncludes-stderr.txt @@ -0,0 +1,4 @@ +CMake Error at TargetInterfaceIncludes.cmake:3 \(install\): + install TARGETS given INCLUDES DESTINATION, but EXPORT set not specified. +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/include_directories/TargetInterfaceIncludes.cmake b/Tests/RunCMake/include_directories/TargetInterfaceIncludes.cmake new file mode 100644 index 0000000..92f31fc --- /dev/null +++ b/Tests/RunCMake/include_directories/TargetInterfaceIncludes.cmake @@ -0,0 +1,4 @@ + +add_library(empty empty.cpp) +install(TARGETS empty DESTINATION lib INCLUDES DESTINATION include) +# install(EXPORT ) |