diff options
4 files changed, 15 insertions, 2 deletions
diff --git a/Source/cmTargetPropCommandBase.cxx b/Source/cmTargetPropCommandBase.cxx index 2f93e39..3aa845c 100644 --- a/Source/cmTargetPropCommandBase.cxx +++ b/Source/cmTargetPropCommandBase.cxx @@ -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; } diff --git a/Tests/RunCMake/add_library/UNKNOWNwithOnlyObjectSources-stderr.txt b/Tests/RunCMake/add_library/UNKNOWNwithOnlyObjectSources-stderr.txt index e332281..838992b 100644 --- a/Tests/RunCMake/add_library/UNKNOWNwithOnlyObjectSources-stderr.txt +++ b/Tests/RunCMake/add_library/UNKNOWNwithOnlyObjectSources-stderr.txt @@ -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\)$ diff --git a/Tests/RunCMake/target_compile_definitions/RunCMakeTest.cmake b/Tests/RunCMake/target_compile_definitions/RunCMakeTest.cmake index b67c598..a419cc9 100644 --- a/Tests/RunCMake/target_compile_definitions/RunCMakeTest.cmake +++ b/Tests/RunCMake/target_compile_definitions/RunCMakeTest.cmake @@ -1,3 +1,4 @@ include(RunCMake) run_cmake(empty_keyword_args) +run_cmake(unknown_imported_target) diff --git a/Tests/RunCMake/target_compile_definitions/unknown_imported_target.cmake b/Tests/RunCMake/target_compile_definitions/unknown_imported_target.cmake new file mode 100644 index 0000000..4ae1c0d --- /dev/null +++ b/Tests/RunCMake/target_compile_definitions/unknown_imported_target.cmake @@ -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() |