Export: Process INSTALL_INTERFACE in INCLUDES DESTINATION.
Code such as install(TARGETS ... INCLUDES DESTINATION $<INSTALL_INTERFACE:include> ) should behave as if the INSTALL_INTERFACE wrapper were not present.
This commit is contained in:
parent
9eedc850eb
commit
f088a32450
|
@ -322,7 +322,10 @@ void cmExportFileGenerator::PopulateIncludeDirectoriesInterface(
|
|||
cmListFileBacktrace lfbt;
|
||||
cmGeneratorExpression ge(lfbt);
|
||||
|
||||
std::string dirs = tei->InterfaceIncludeDirectories;
|
||||
std::string dirs = cmGeneratorExpression::Preprocess(
|
||||
tei->InterfaceIncludeDirectories,
|
||||
preprocessRule,
|
||||
true);
|
||||
this->ReplaceInstallPrefix(dirs);
|
||||
cmsys::auto_ptr<cmCompiledGeneratorExpression> cge = ge.Parse(dirs);
|
||||
std::string exportDirs = cge->Evaluate(target->GetMakefile(), 0,
|
||||
|
|
|
@ -313,6 +313,20 @@ install(TARGETS testLibRequired
|
|||
$<INSTALL_PREFIX>/installIncludesTest2
|
||||
installIncludesTest3/$<TARGET_PROPERTY:NAME>
|
||||
$<TARGET_PROPERTY:NAME>/installIncludesTest4
|
||||
$<INSTALL_INTERFACE:installIncludesTest5$<0:>>
|
||||
$<INSTALL_INTERFACE:$<0:>installIncludesTest6>
|
||||
$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/installIncludesTest7>
|
||||
)
|
||||
|
||||
target_include_directories(testLibRequired INTERFACE
|
||||
# These can't be in the above install(INCLUDES DESTINATION call because
|
||||
# that is only for installed interfaces. These directories are prefixes
|
||||
# in the build dir, which is an error for the installed interface.
|
||||
# We add them here so that we don't have to add conditions in the Import
|
||||
# component of the test.
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest5$<0:>>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/$<0:>installIncludesTest6>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest7>
|
||||
)
|
||||
install(TARGETS
|
||||
testLibIncludeRequired1
|
||||
|
@ -340,6 +354,12 @@ file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest3/testLibReq
|
|||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest3/testLibRequired/installIncludesTest3.h" "// No content\n")
|
||||
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/testLibRequired/installIncludesTest4")
|
||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/testLibRequired/installIncludesTest4/installIncludesTest4.h" "// No content\n")
|
||||
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest5")
|
||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest5/installIncludesTest5.h" "// No content\n")
|
||||
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")
|
||||
install(FILES
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest/installIncludesTest.h"
|
||||
DESTINATION installIncludesTest
|
||||
|
@ -356,6 +376,18 @@ install(FILES
|
|||
"${CMAKE_CURRENT_BINARY_DIR}/testLibRequired/installIncludesTest4/installIncludesTest4.h"
|
||||
DESTINATION testLibRequired/installIncludesTest4
|
||||
)
|
||||
install(FILES
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest5/installIncludesTest5.h"
|
||||
DESTINATION installIncludesTest5
|
||||
)
|
||||
install(FILES
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest6/installIncludesTest6.h"
|
||||
DESTINATION installIncludesTest6
|
||||
)
|
||||
install(FILES
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest7/installIncludesTest7.h"
|
||||
DESTINATION installIncludesTest7
|
||||
)
|
||||
|
||||
install(TARGETS testLibDepends testSharedLibDepends EXPORT DependsExp DESTINATION lib )
|
||||
install(EXPORT DependsExp FILE testLibDependsTargets.cmake DESTINATION lib/cmake/testLibDepends)
|
||||
|
|
|
@ -8,6 +8,9 @@
|
|||
#include "installIncludesTest2.h"
|
||||
#include "installIncludesTest3.h"
|
||||
#include "installIncludesTest4.h"
|
||||
#include "installIncludesTest5.h"
|
||||
#include "installIncludesTest6.h"
|
||||
#include "installIncludesTest7.h"
|
||||
|
||||
#ifndef testLibRequired_IFACE_DEFINE
|
||||
#error Expected testLibRequired_IFACE_DEFINE
|
||||
|
|
Loading…
Reference in New Issue