1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-19 02:17:27 +08:00

cmPolicies: Pass policy version as std::string

This commit is contained in:
Brad King
2018-03-16 11:56:54 -04:00
parent b3e668ea25
commit 0df559832b
4 changed files with 10 additions and 8 deletions

View File

@@ -4149,9 +4149,9 @@ void cmMakefile::PopSnapshot(bool reportError)
assert(this->StateSnapshot.IsValid());
}
bool cmMakefile::SetPolicyVersion(const char* version)
bool cmMakefile::SetPolicyVersion(std::string const& version_min)
{
return cmPolicies::ApplyPolicyVersion(this, version);
return cmPolicies::ApplyPolicyVersion(this, version_min);
}
bool cmMakefile::HasCMP0054AlreadyBeenReported(

View File

@@ -285,7 +285,7 @@ public:
bool SetPolicy(cmPolicies::PolicyID id, cmPolicies::PolicyStatus status);
bool SetPolicy(const char* id, cmPolicies::PolicyStatus status);
cmPolicies::PolicyStatus GetPolicyStatus(cmPolicies::PolicyID id) const;
bool SetPolicyVersion(const char* version);
bool SetPolicyVersion(std::string const& version_min);
void RecordPolicies(cmPolicies::PolicyMap& pm);
//@}

View File

@@ -153,12 +153,13 @@ static bool GetPolicyDefault(cmMakefile* mf, std::string const& policy,
return true;
}
bool cmPolicies::ApplyPolicyVersion(cmMakefile* mf, const char* version)
bool cmPolicies::ApplyPolicyVersion(cmMakefile* mf,
std::string const& version_min)
{
std::string ver = "2.4.0";
if (version && strlen(version) > 0) {
ver = version;
if (!version_min.empty()) {
ver = version_min;
}
unsigned int majorVer = 2;
@@ -200,7 +201,7 @@ bool cmPolicies::ApplyPolicyVersion(cmMakefile* mf, const char* version)
tweakVer > cmVersion::GetTweakVersion())) {
std::ostringstream e;
e << "An attempt was made to set the policy version of CMake to \""
<< version << "\" which is greater than this version of CMake. "
<< 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.";

View File

@@ -288,7 +288,8 @@ public:
static cmPolicies::PolicyStatus GetPolicyStatus(cmPolicies::PolicyID id);
///! Set a policy level for this listfile
static bool ApplyPolicyVersion(cmMakefile* mf, const char* version);
static bool ApplyPolicyVersion(cmMakefile* mf,
std::string const& version_min);
///! return a warning string for a given policy
static std::string GetPolicyWarning(cmPolicies::PolicyID id);