Merge topic 'IMPORTED-build-dependencies'
4f7ceb5 Test non-IMPORTED libraries in the INTERFACE of IMPORTED libraries. 3405351 Add entire link interface transitive closure as target depends.
This commit is contained in:
commit
aa0b9fa311
@ -282,6 +282,8 @@ void cmComputeTargetDepends::AddInterfaceDepends(int depender_index,
|
|||||||
if(emitted.insert(*lib).second)
|
if(emitted.insert(*lib).second)
|
||||||
{
|
{
|
||||||
this->AddTargetDepend(depender_index, lib->c_str(), true);
|
this->AddTargetDepend(depender_index, lib->c_str(), true);
|
||||||
|
this->AddInterfaceDepends(depender_index, lib->c_str(),
|
||||||
|
true, emitted);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -184,6 +184,9 @@ set_property(TARGET testSharedLibRequired APPEND PROPERTY
|
|||||||
INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include/testSharedLibRequired>"
|
INTERFACE_INCLUDE_DIRECTORIES "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include/testSharedLibRequired>"
|
||||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR};${CMAKE_CURRENT_SOURCE_DIR}>"
|
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR};${CMAKE_CURRENT_SOURCE_DIR}>"
|
||||||
)
|
)
|
||||||
|
set_property(TARGET testSharedLibRequired APPEND PROPERTY
|
||||||
|
INTERFACE_COMPILE_DEFINITIONS USING_TESTSHAREDLIBREQUIRED
|
||||||
|
)
|
||||||
set_property(TARGET testSharedLibRequired
|
set_property(TARGET testSharedLibRequired
|
||||||
APPEND PROPERTY
|
APPEND PROPERTY
|
||||||
COMPATIBLE_INTERFACE_BOOL CUSTOM_PROP
|
COMPATIBLE_INTERFACE_BOOL CUSTOM_PROP
|
||||||
|
@ -218,3 +218,36 @@ target_compile_definitions(deps_shared_iface2
|
|||||||
$<$<BOOL:$<TARGET_PROPERTY:CUSTOM_PROP>>:CUSTOM_PROPERTY_IS_ON>
|
$<$<BOOL:$<TARGET_PROPERTY:CUSTOM_PROP>>:CUSTOM_PROPERTY_IS_ON>
|
||||||
$<$<STREQUAL:$<TARGET_PROPERTY:CUSTOM_STRING>,testcontent>:CUSTOM_STRING_IS_MATCH>
|
$<$<STREQUAL:$<TARGET_PROPERTY:CUSTOM_STRING>,testcontent>:CUSTOM_STRING_IS_MATCH>
|
||||||
)
|
)
|
||||||
|
|
||||||
|
add_subdirectory(excludedFromAll)
|
||||||
|
|
||||||
|
add_executable(iface_test_bld iface_test.cpp)
|
||||||
|
target_link_libraries(iface_test_bld bld_testSharedLibDepends)
|
||||||
|
|
||||||
|
set_property(TARGET bld_testSharedLibRequired APPEND PROPERTY
|
||||||
|
LINK_INTERFACE_LIBRARIES
|
||||||
|
excludedFromAll
|
||||||
|
)
|
||||||
|
get_target_property(_configs bld_testSharedLibRequired IMPORTED_CONFIGURATIONS)
|
||||||
|
foreach(_config ${_configs})
|
||||||
|
set_property(TARGET bld_testSharedLibRequired APPEND PROPERTY
|
||||||
|
IMPORTED_LINK_INTERFACE_LIBRARIES_${_config}
|
||||||
|
excludedFromAll
|
||||||
|
)
|
||||||
|
endforeach()
|
||||||
|
unset(_configs)
|
||||||
|
add_executable(iface_test_exp iface_test.cpp)
|
||||||
|
target_link_libraries(iface_test_exp testSharedLibDepends)
|
||||||
|
|
||||||
|
set_property(TARGET testSharedLibDepends APPEND PROPERTY
|
||||||
|
LINK_INTERFACE_LIBRARIES
|
||||||
|
excludedFromAll
|
||||||
|
)
|
||||||
|
get_target_property(_configs testSharedLibDepends IMPORTED_CONFIGURATIONS)
|
||||||
|
foreach(_config ${_configs})
|
||||||
|
set_property(TARGET testSharedLibDepends APPEND PROPERTY
|
||||||
|
IMPORTED_LINK_INTERFACE_LIBRARIES_${_config}
|
||||||
|
excludedFromAll
|
||||||
|
)
|
||||||
|
endforeach()
|
||||||
|
unset(_configs)
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
set(CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON)
|
||||||
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||||
|
|
||||||
|
include(GenerateExportHeader)
|
||||||
|
add_library(excludedFromAll SHARED EXCLUDE_FROM_ALL excludedFromAll.cpp)
|
||||||
|
generate_export_header(excludedFromAll)
|
@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
#include "excludedFromAll.h"
|
||||||
|
|
||||||
|
int excludedFromAll()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
@ -0,0 +1,4 @@
|
|||||||
|
|
||||||
|
#include "excludedfromall_export.h"
|
||||||
|
|
||||||
|
int EXCLUDEDFROMALL_EXPORT excludedFromAll();
|
11
Tests/ExportImport/Import/A/iface_test.cpp
Normal file
11
Tests/ExportImport/Import/A/iface_test.cpp
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
|
||||||
|
#ifndef USING_TESTSHAREDLIBREQUIRED
|
||||||
|
#error Expected USING_TESTSHAREDLIBREQUIRED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "excludedFromAll.h"
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
return excludedFromAll();
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user