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)
|
||||
{
|
||||
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>"
|
||||
"$<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
|
||||
APPEND PROPERTY
|
||||
COMPATIBLE_INTERFACE_BOOL CUSTOM_PROP
|
||||
|
@ -218,3 +218,36 @@ target_compile_definitions(deps_shared_iface2
|
||||
$<$<BOOL:$<TARGET_PROPERTY:CUSTOM_PROP>>:CUSTOM_PROPERTY_IS_ON>
|
||||
$<$<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