|
@@ -5603,8 +5603,9 @@ void cmGeneratorTarget::ComputeLinkInterfaceLibraries(
|
|
// libraries and executables that export symbols.
|
|
// libraries and executables that export symbols.
|
|
const char* explicitLibraries = nullptr;
|
|
const char* explicitLibraries = nullptr;
|
|
std::string linkIfaceProp;
|
|
std::string linkIfaceProp;
|
|
- if (this->GetPolicyStatusCMP0022() != cmPolicies::OLD &&
|
|
|
|
- this->GetPolicyStatusCMP0022() != cmPolicies::WARN) {
|
|
|
|
|
|
+ bool const cmp0022NEW = (this->GetPolicyStatusCMP0022() != cmPolicies::OLD &&
|
|
|
|
+ this->GetPolicyStatusCMP0022() != cmPolicies::WARN);
|
|
|
|
+ if (cmp0022NEW) {
|
|
// CMP0022 NEW behavior is to use INTERFACE_LINK_LIBRARIES.
|
|
// CMP0022 NEW behavior is to use INTERFACE_LINK_LIBRARIES.
|
|
linkIfaceProp = "INTERFACE_LINK_LIBRARIES";
|
|
linkIfaceProp = "INTERFACE_LINK_LIBRARIES";
|
|
explicitLibraries = this->GetProperty(linkIfaceProp);
|
|
explicitLibraries = this->GetProperty(linkIfaceProp);
|
|
@@ -5666,8 +5667,7 @@ void cmGeneratorTarget::ComputeLinkInterfaceLibraries(
|
|
this->ExpandLinkItems(linkIfaceProp, explicitLibraries, config, headTarget,
|
|
this->ExpandLinkItems(linkIfaceProp, explicitLibraries, config, headTarget,
|
|
usage_requirements_only, iface.Libraries,
|
|
usage_requirements_only, iface.Libraries,
|
|
iface.HadHeadSensitiveCondition);
|
|
iface.HadHeadSensitiveCondition);
|
|
- } else if (this->GetPolicyStatusCMP0022() == cmPolicies::WARN ||
|
|
|
|
- this->GetPolicyStatusCMP0022() == cmPolicies::OLD)
|
|
|
|
|
|
+ } else if (!cmp0022NEW)
|
|
// If CMP0022 is NEW then the plain tll signature sets the
|
|
// If CMP0022 is NEW then the plain tll signature sets the
|
|
// INTERFACE_LINK_LIBRARIES, so if we get here then the project
|
|
// INTERFACE_LINK_LIBRARIES, so if we get here then the project
|
|
// cleared the property explicitly and we should not fall back
|
|
// cleared the property explicitly and we should not fall back
|