mirror of
https://github.com/reactos/CMake.git
synced 2025-02-01 01:22:58 +00:00
target_*: Allow setting INTERFACE properties of UNKNOWN IMPORTED targets
Extend the change made by commit fe4b25ec2f (Teach target_* commands to set INTERFACE properties of IMPORTED targets, 2017-09-18, v3.11.0-rc1~433^2~2) to work with imported targets of type `UNKNOWN`. Fixes: #19434
This commit is contained in:
parent
62b5d1e4ad
commit
680a3c63bb
@ -37,7 +37,8 @@ bool cmTargetPropCommandBase::HandleArguments(
|
||||
(this->Target->GetType() != cmStateEnums::SHARED_LIBRARY) &&
|
||||
(this->Target->GetType() != cmStateEnums::MODULE_LIBRARY) &&
|
||||
(this->Target->GetType() != cmStateEnums::OBJECT_LIBRARY) &&
|
||||
(this->Target->GetType() != cmStateEnums::INTERFACE_LIBRARY)) {
|
||||
(this->Target->GetType() != cmStateEnums::INTERFACE_LIBRARY) &&
|
||||
(this->Target->GetType() != cmStateEnums::UNKNOWN_LIBRARY)) {
|
||||
this->SetError("called with non-compilable target type");
|
||||
return false;
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
^CMake Error at UNKNOWNwithOnlyObjectSources.cmake:[0-9]+ \(target_sources\):
|
||||
target_sources called with non-compilable target type
|
||||
target_sources may only set INTERFACE properties on IMPORTED targets
|
||||
Call Stack \(most recent call first\):
|
||||
CMakeLists.txt:[0-9]+ \(include\)$
|
||||
|
@ -1,3 +1,4 @@
|
||||
include(RunCMake)
|
||||
|
||||
run_cmake(empty_keyword_args)
|
||||
run_cmake(unknown_imported_target)
|
||||
|
@ -0,0 +1,11 @@
|
||||
# Test that target_compile_definitions works on UNKNOWN IMPORTED target
|
||||
add_library(imported UNKNOWN IMPORTED)
|
||||
target_compile_definitions(imported INTERFACE FOO)
|
||||
|
||||
get_target_property(IMPORTED_INTERFACE_CDS imported INTERFACE_COMPILE_DEFINITIONS)
|
||||
|
||||
if (NOT FOO IN_LIST IMPORTED_INTERFACE_CDS)
|
||||
message(
|
||||
FATAL_ERROR "FOO should be in INTERFACE_COMPILE_DEFINITIONS.\n"
|
||||
"Actual INTERFACE_COMPILE_DEFINITIONS: " ${IMPORTED_INTERFACE_CDS})
|
||||
endif()
|
Loading…
x
Reference in New Issue
Block a user