mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-14 02:08:27 +08:00
Merge topic 'cmp0037-conditional-targets'
ae5f4069
CMP0037: Allow test and package targets when features are not enabled409527a0
CMP0037: De-duplicate check and message generationa2611d81
Tests: Add RunCMake.CMP0037 case for WARN on reserved targets103501c4
Tests: Do not enable languages in all cases of RunCMake.CMP00372d0b3e6e
cmGlobalGenerator: Refactor test and package target conditions Acked-by: Kitware Robot <kwrobot@kitware.com> Reviewed-by: Ben Boeckel <ben.boeckel@kitware.com> Merge-request: !1417
This commit is contained in:
@@ -7,7 +7,6 @@
|
||||
#include "cmGeneratorExpression.h"
|
||||
#include "cmGlobalGenerator.h"
|
||||
#include "cmMakefile.h"
|
||||
#include "cmPolicies.h"
|
||||
#include "cmState.h"
|
||||
#include "cmStateTypes.h"
|
||||
#include "cmSystemTools.h"
|
||||
@@ -175,35 +174,8 @@ bool cmAddLibraryCommand::InitialPass(std::vector<std::string> const& args,
|
||||
if (nameOk && !importTarget && !isAlias) {
|
||||
nameOk = libName.find(':') == std::string::npos;
|
||||
}
|
||||
if (!nameOk) {
|
||||
cmake::MessageType messageType = cmake::AUTHOR_WARNING;
|
||||
std::ostringstream e;
|
||||
bool issueMessage = false;
|
||||
switch (this->Makefile->GetPolicyStatus(cmPolicies::CMP0037)) {
|
||||
case cmPolicies::WARN:
|
||||
if (type != cmStateEnums::INTERFACE_LIBRARY) {
|
||||
e << cmPolicies::GetPolicyWarning(cmPolicies::CMP0037) << "\n";
|
||||
issueMessage = true;
|
||||
}
|
||||
case cmPolicies::OLD:
|
||||
break;
|
||||
case cmPolicies::NEW:
|
||||
case cmPolicies::REQUIRED_IF_USED:
|
||||
case cmPolicies::REQUIRED_ALWAYS:
|
||||
issueMessage = true;
|
||||
messageType = cmake::FATAL_ERROR;
|
||||
}
|
||||
if (issueMessage) {
|
||||
e << "The target name \"" << libName
|
||||
<< "\" is reserved or not valid for certain "
|
||||
"CMake features, such as generator expressions, and may result "
|
||||
"in undefined behavior.";
|
||||
this->Makefile->IssueMessage(messageType, e.str());
|
||||
|
||||
if (messageType == cmake::FATAL_ERROR) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (!nameOk && !this->Makefile->CheckCMP0037(libName, type)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (isAlias) {
|
||||
|
Reference in New Issue
Block a user