mirror of
https://github.com/Kitware/CMake.git
synced 2025-12-31 10:50:16 -06:00
cmPolicies: use cmStrCat for error message building
This commit is contained in:
@@ -148,10 +148,10 @@ static bool GetPolicyDefault(cmMakefile* mf, std::string const& policy,
|
||||
} else if (defaultValue.empty()) {
|
||||
*defaultSetting = cmPolicies::WARN;
|
||||
} else {
|
||||
std::ostringstream e;
|
||||
e << defaultVar << " has value \"" << defaultValue
|
||||
<< R"(" but must be "OLD", "NEW", or "" (empty).)";
|
||||
mf->IssueMessage(MessageType::FATAL_ERROR, e.str());
|
||||
mf->IssueMessage(
|
||||
MessageType::FATAL_ERROR,
|
||||
cmStrCat(defaultVar, " has value \"", defaultValue,
|
||||
R"(" but must be "OLD", "NEW", or "" (empty).)"));
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -170,11 +170,11 @@ bool cmPolicies::ApplyPolicyVersion(cmMakefile* mf,
|
||||
unsigned int minTweak = 0;
|
||||
if (sscanf(version_min.c_str(), "%u.%u.%u.%u", &minMajor, &minMinor,
|
||||
&minPatch, &minTweak) < 2) {
|
||||
std::ostringstream e;
|
||||
e << "Invalid policy version value \"" << version_min
|
||||
<< "\". "
|
||||
"A numeric major.minor[.patch[.tweak]] must be given.";
|
||||
mf->IssueMessage(MessageType::FATAL_ERROR, e.str());
|
||||
mf->IssueMessage(
|
||||
MessageType::FATAL_ERROR,
|
||||
cmStrCat("Invalid policy version value \"", version_min,
|
||||
"\". "
|
||||
"A numeric major.minor[.patch[.tweak]] must be given."));
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -200,14 +200,14 @@ bool cmPolicies::ApplyPolicyVersion(cmMakefile* mf,
|
||||
minMinor == cmVersion::GetMinorVersion() &&
|
||||
minPatch == cmVersion::GetPatchVersion() &&
|
||||
minTweak > cmVersion::GetTweakVersion())) {
|
||||
std::ostringstream e;
|
||||
e << "An attempt was made to set the policy version of CMake to \""
|
||||
<< version_min
|
||||
<< "\" which is greater than this version of CMake. "
|
||||
"This is not allowed because the greater version may have new "
|
||||
"policies not known to this CMake. "
|
||||
"You may need a newer CMake version to build this project.";
|
||||
mf->IssueMessage(MessageType::FATAL_ERROR, e.str());
|
||||
mf->IssueMessage(
|
||||
MessageType::FATAL_ERROR,
|
||||
cmStrCat("An attempt was made to set the policy version of CMake to \"",
|
||||
version_min,
|
||||
"\" which is greater than this version of CMake. ",
|
||||
"This is not allowed because the greater version may have new "
|
||||
"policies not known to this CMake. "
|
||||
"You may need a newer CMake version to build this project."));
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -223,11 +223,11 @@ bool cmPolicies::ApplyPolicyVersion(cmMakefile* mf,
|
||||
unsigned int maxTweak = 0;
|
||||
if (sscanf(version_max.c_str(), "%u.%u.%u.%u", &maxMajor, &maxMinor,
|
||||
&maxPatch, &maxTweak) < 2) {
|
||||
std::ostringstream e;
|
||||
e << "Invalid policy max version value \"" << version_max
|
||||
<< "\". "
|
||||
"A numeric major.minor[.patch[.tweak]] must be given.";
|
||||
mf->IssueMessage(MessageType::FATAL_ERROR, e.str());
|
||||
mf->IssueMessage(
|
||||
MessageType::FATAL_ERROR,
|
||||
cmStrCat("Invalid policy max version value \"", version_max,
|
||||
"\". "
|
||||
"A numeric major.minor[.patch[.tweak]] must be given."));
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -237,11 +237,10 @@ bool cmPolicies::ApplyPolicyVersion(cmMakefile* mf,
|
||||
minPatch > maxPatch) ||
|
||||
(minMajor == maxMajor && minMinor == maxMinor &&
|
||||
minPatch == maxPatch && minTweak > maxTweak)) {
|
||||
std::ostringstream e;
|
||||
e << "Policy VERSION range \"" << version_min << "..." << version_max
|
||||
<< "\""
|
||||
" specifies a larger minimum than maximum.";
|
||||
mf->IssueMessage(MessageType::FATAL_ERROR, e.str());
|
||||
mf->IssueMessage(
|
||||
MessageType::FATAL_ERROR,
|
||||
cmStrCat("Policy VERSION range \"", version_min, "...", version_max,
|
||||
"\" specifies a larger minimum than maximum."));
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -331,61 +330,49 @@ bool cmPolicies::GetPolicyID(const char* id, cmPolicies::PolicyID& pid)
|
||||
//! return a warning string for a given policy
|
||||
std::string cmPolicies::GetPolicyWarning(cmPolicies::PolicyID id)
|
||||
{
|
||||
std::ostringstream msg;
|
||||
msg << "Policy " << idToString(id)
|
||||
<< " is not set: "
|
||||
""
|
||||
<< idToShortDescription(id)
|
||||
<< " "
|
||||
"Run \"cmake --help-policy "
|
||||
<< idToString(id)
|
||||
<< "\" for "
|
||||
"policy details. "
|
||||
"Use the cmake_policy command to set the policy "
|
||||
"and suppress this warning.";
|
||||
return msg.str();
|
||||
return cmStrCat("Policy ", idToString(id),
|
||||
" is not set: ", idToShortDescription(id),
|
||||
" "
|
||||
"Run \"cmake --help-policy ",
|
||||
idToString(id),
|
||||
"\" for "
|
||||
"policy details. "
|
||||
"Use the cmake_policy command to set the policy "
|
||||
"and suppress this warning.");
|
||||
}
|
||||
|
||||
std::string cmPolicies::GetPolicyDeprecatedWarning(cmPolicies::PolicyID id)
|
||||
{
|
||||
std::ostringstream msg;
|
||||
/* clang-format off */
|
||||
msg <<
|
||||
"The OLD behavior for policy " << idToString(id) << " "
|
||||
return cmStrCat(
|
||||
"The OLD behavior for policy ", idToString(id),
|
||||
" "
|
||||
"will be removed from a future version of CMake.\n"
|
||||
"The cmake-policies(7) manual explains that the OLD behaviors of all "
|
||||
"policies are deprecated and that a policy should be set to OLD only "
|
||||
"under specific short-term circumstances. Projects should be ported "
|
||||
"to the NEW behavior and not rely on setting a policy to OLD."
|
||||
;
|
||||
/* clang-format on */
|
||||
return msg.str();
|
||||
"to the NEW behavior and not rely on setting a policy to OLD.");
|
||||
}
|
||||
|
||||
//! return an error string for when a required policy is unspecified
|
||||
std::string cmPolicies::GetRequiredPolicyError(cmPolicies::PolicyID id)
|
||||
{
|
||||
std::ostringstream error;
|
||||
error << "Policy " << idToString(id)
|
||||
<< " is not set to NEW: "
|
||||
""
|
||||
<< idToShortDescription(id)
|
||||
<< " "
|
||||
"Run \"cmake --help-policy "
|
||||
<< idToString(id)
|
||||
<< "\" for "
|
||||
"policy details. "
|
||||
"CMake now requires this policy to be set to NEW by the project. "
|
||||
"The policy may be set explicitly using the code\n"
|
||||
" cmake_policy(SET "
|
||||
<< idToString(id)
|
||||
<< " NEW)\n"
|
||||
"or by upgrading all policies with the code\n"
|
||||
" cmake_policy(VERSION "
|
||||
<< idToVersion(id)
|
||||
<< ") # or later\n"
|
||||
"Run \"cmake --help-command cmake_policy\" for more information.";
|
||||
return error.str();
|
||||
return cmStrCat(
|
||||
"Policy ", idToString(id),
|
||||
" is not set to NEW: ", idToShortDescription(id),
|
||||
" "
|
||||
"Run \"cmake --help-policy ",
|
||||
idToString(id),
|
||||
"\" for policy details. "
|
||||
"CMake now requires this policy to be set to NEW by the project. "
|
||||
"The policy may be set explicitly using the code\n"
|
||||
" cmake_policy(SET ",
|
||||
idToString(id),
|
||||
" NEW)\n"
|
||||
"or by upgrading all policies with the code\n"
|
||||
" cmake_policy(VERSION ",
|
||||
idToVersion(id),
|
||||
") # or later\n"
|
||||
"Run \"cmake --help-command cmake_policy\" for more information.");
|
||||
}
|
||||
|
||||
//! Get the default status for a policy
|
||||
@@ -398,21 +385,18 @@ cmPolicies::PolicyStatus cmPolicies::GetPolicyStatus(
|
||||
std::string cmPolicies::GetRequiredAlwaysPolicyError(cmPolicies::PolicyID id)
|
||||
{
|
||||
std::string pid = idToString(id);
|
||||
std::ostringstream e;
|
||||
e << "Policy " << pid
|
||||
<< " may not be set to OLD behavior because this "
|
||||
"version of CMake no longer supports it. "
|
||||
"The policy was introduced in "
|
||||
"CMake version "
|
||||
<< idToVersion(id)
|
||||
<< ", and use of NEW behavior is now required."
|
||||
"\n"
|
||||
"Please either update your CMakeLists.txt files to conform to "
|
||||
"the new behavior or use an older version of CMake that still "
|
||||
"supports the old behavior. "
|
||||
"Run cmake --help-policy "
|
||||
<< pid << " for more information.";
|
||||
return e.str();
|
||||
return cmStrCat(
|
||||
"Policy ", pid,
|
||||
" may not be set to OLD behavior because this "
|
||||
"version of CMake no longer supports it. "
|
||||
"The policy was introduced in CMake version ",
|
||||
idToVersion(id),
|
||||
", and use of NEW behavior is now required."
|
||||
"\n"
|
||||
"Please either update your CMakeLists.txt files to conform to "
|
||||
"the new behavior or use an older version of CMake that still "
|
||||
"supports the old behavior. Run cmake --help-policy ",
|
||||
pid, " for more information.");
|
||||
}
|
||||
|
||||
cmPolicies::PolicyStatus cmPolicies::PolicyMap::Get(
|
||||
|
||||
Reference in New Issue
Block a user