mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 21:31:08 -06:00
Teach target_* commands to set INTERFACE properties of IMPORTED targets
Now, several `INTERFACE_*` properties can be set on `IMPORTED` targets, not only via `set_property` and `set_target_properties` but also via `target_compile_definitions`, `target_compile_features`, `target_compile_options`, `target_include_directories`, `target_sources` and `target_link_libraries`. Fixes: #15689 Issue: #17197
This commit is contained in:
@@ -84,17 +84,15 @@ bool cmTargetPropCommandBase::ProcessContentArgs(
|
||||
this->SetError("called with invalid arguments");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (this->Target->IsImported()) {
|
||||
this->HandleImportedTarget(args[0]);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (this->Target->GetType() == cmStateEnums::INTERFACE_LIBRARY &&
|
||||
scope != "INTERFACE") {
|
||||
this->SetError("may only set INTERFACE properties on INTERFACE targets");
|
||||
return false;
|
||||
}
|
||||
if (this->Target->IsImported() && scope != "INTERFACE") {
|
||||
this->SetError("may only set INTERFACE properties on IMPORTED targets");
|
||||
return false;
|
||||
}
|
||||
|
||||
++argIndex;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user