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.
This commit is contained in:
parent
f088a32450
commit
7a3e45b9d4
|
@ -245,7 +245,7 @@ static void prefixItems(const std::string &content, std::string &result,
|
||||||
result += sep;
|
result += sep;
|
||||||
sep = ";";
|
sep = ";";
|
||||||
if (!cmSystemTools::FileIsFullPath(ei->c_str())
|
if (!cmSystemTools::FileIsFullPath(ei->c_str())
|
||||||
&& cmGeneratorExpression::Find(*ei) == std::string::npos)
|
&& cmGeneratorExpression::Find(*ei) != 0)
|
||||||
{
|
{
|
||||||
result += prefix;
|
result += prefix;
|
||||||
}
|
}
|
||||||
|
|
|
@ -327,6 +327,8 @@ target_include_directories(testLibRequired INTERFACE
|
||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest5$<0:>>
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest5$<0:>>
|
||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/$<0:>installIncludesTest6>
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/$<0:>installIncludesTest6>
|
||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest7>
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest7>
|
||||||
|
$<INSTALL_INTERFACE:installIncludesTest8/$<0:>>
|
||||||
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest8$<0:>>
|
||||||
)
|
)
|
||||||
install(TARGETS
|
install(TARGETS
|
||||||
testLibIncludeRequired1
|
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(WRITE "${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest6/installIncludesTest6.h" "// No content\n")
|
||||||
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest7")
|
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest7")
|
||||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest7/installIncludesTest7.h" "// No content\n")
|
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
|
install(FILES
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest/installIncludesTest.h"
|
"${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest/installIncludesTest.h"
|
||||||
DESTINATION installIncludesTest
|
DESTINATION installIncludesTest
|
||||||
|
@ -388,6 +392,10 @@ install(FILES
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest7/installIncludesTest7.h"
|
"${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest7/installIncludesTest7.h"
|
||||||
DESTINATION installIncludesTest7
|
DESTINATION installIncludesTest7
|
||||||
)
|
)
|
||||||
|
install(FILES
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/installIncludesTest8/installIncludesTest8.h"
|
||||||
|
DESTINATION installIncludesTest8
|
||||||
|
)
|
||||||
|
|
||||||
install(TARGETS testLibDepends testSharedLibDepends EXPORT DependsExp DESTINATION lib )
|
install(TARGETS testLibDepends testSharedLibDepends EXPORT DependsExp DESTINATION lib )
|
||||||
install(EXPORT DependsExp FILE testLibDependsTargets.cmake DESTINATION lib/cmake/testLibDepends)
|
install(EXPORT DependsExp FILE testLibDependsTargets.cmake DESTINATION lib/cmake/testLibDepends)
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
#include "installIncludesTest5.h"
|
#include "installIncludesTest5.h"
|
||||||
#include "installIncludesTest6.h"
|
#include "installIncludesTest6.h"
|
||||||
#include "installIncludesTest7.h"
|
#include "installIncludesTest7.h"
|
||||||
|
#include "installIncludesTest8.h"
|
||||||
|
|
||||||
#ifndef testLibRequired_IFACE_DEFINE
|
#ifndef testLibRequired_IFACE_DEFINE
|
||||||
#error Expected testLibRequired_IFACE_DEFINE
|
#error Expected testLibRequired_IFACE_DEFINE
|
||||||
|
|
Loading…
Reference in New Issue