mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-08 07:10:12 -05:00
cmTarget: Do not enforce CMP0111 on imported INTERFACE libraries
Fix logic added by commit 359c500a24 (cmTarget: Raise error if imported
target location is not set, 2020-08-08, v3.19.0-rc1~273^2) to exclude
INTERFACE libraries from the policy. They have no location.
Fixes: #21470
This commit is contained in:
+29
-27
@@ -2045,35 +2045,37 @@ std::string cmTarget::ImportedGetFullPath(
|
||||
}
|
||||
|
||||
if (result.empty()) {
|
||||
auto message = [&]() -> std::string {
|
||||
std::string unset;
|
||||
std::string configuration;
|
||||
if (this->GetType() != cmStateEnums::INTERFACE_LIBRARY) {
|
||||
auto message = [&]() -> std::string {
|
||||
std::string unset;
|
||||
std::string configuration;
|
||||
|
||||
if (artifact == cmStateEnums::RuntimeBinaryArtifact) {
|
||||
unset = "IMPORTED_LOCATION";
|
||||
} else if (artifact == cmStateEnums::ImportLibraryArtifact) {
|
||||
unset = "IMPORTED_IMPLIB";
|
||||
if (artifact == cmStateEnums::RuntimeBinaryArtifact) {
|
||||
unset = "IMPORTED_LOCATION";
|
||||
} else if (artifact == cmStateEnums::ImportLibraryArtifact) {
|
||||
unset = "IMPORTED_IMPLIB";
|
||||
}
|
||||
|
||||
if (!config.empty()) {
|
||||
configuration = cmStrCat(" configuration \"", config, "\"");
|
||||
}
|
||||
|
||||
return cmStrCat(unset, " not set for imported target \"",
|
||||
this->GetName(), "\"", configuration, ".");
|
||||
};
|
||||
|
||||
switch (this->GetPolicyStatus(cmPolicies::CMP0111)) {
|
||||
case cmPolicies::WARN:
|
||||
impl->Makefile->IssueMessage(
|
||||
MessageType::AUTHOR_WARNING,
|
||||
cmPolicies::GetPolicyWarning(cmPolicies::CMP0111) + "\n" +
|
||||
message());
|
||||
CM_FALLTHROUGH;
|
||||
case cmPolicies::OLD:
|
||||
break;
|
||||
default:
|
||||
impl->Makefile->IssueMessage(MessageType::FATAL_ERROR, message());
|
||||
}
|
||||
|
||||
if (!config.empty()) {
|
||||
configuration = cmStrCat(" configuration \"", config, "\"");
|
||||
}
|
||||
|
||||
return cmStrCat(unset, " not set for imported target \"",
|
||||
this->GetName(), "\"", configuration, ".");
|
||||
};
|
||||
|
||||
switch (this->GetPolicyStatus(cmPolicies::CMP0111)) {
|
||||
case cmPolicies::WARN:
|
||||
impl->Makefile->IssueMessage(
|
||||
MessageType::AUTHOR_WARNING,
|
||||
cmPolicies::GetPolicyWarning(cmPolicies::CMP0111) + "\n" +
|
||||
message());
|
||||
CM_FALLTHROUGH;
|
||||
case cmPolicies::OLD:
|
||||
break;
|
||||
default:
|
||||
impl->Makefile->IssueMessage(MessageType::FATAL_ERROR, message());
|
||||
}
|
||||
|
||||
result = cmStrCat(this->GetName(), "-NOTFOUND");
|
||||
|
||||
Reference in New Issue
Block a user