diff options
author | Brad King <brad.king@kitware.com> | 2013-10-18 15:54:09 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2013-10-22 13:09:51 (GMT) |
commit | 882c0f0b698e70be8b74aa498b62cb1fb22f3c24 (patch) | |
tree | 9154c655d59026c3ccf89b72f8e34da36694939d /Source/cmCommand.h | |
parent | ddef8a7cfffbbae12f2d2c556651f06346237569 (diff) | |
download | CMake-882c0f0b698e70be8b74aa498b62cb1fb22f3c24.zip CMake-882c0f0b698e70be8b74aa498b62cb1fb22f3c24.tar.gz CMake-882c0f0b698e70be8b74aa498b62cb1fb22f3c24.tar.bz2 |
Add infrastructure for policies that disallow commands
Add cmCommand::Disallowed helper to check the setting of a policy that
disallows the command. Add a RunCMake.DisallowedCommands test
placeholder. Add a Help/policy/DISALLOWED_COMMAND.txt file for
inclusion by each policy document to avoid duplication of the common
text.
Diffstat (limited to 'Source/cmCommand.h')
-rw-r--r-- | Source/cmCommand.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/Source/cmCommand.h b/Source/cmCommand.h index 83184a0..e148857 100644 --- a/Source/cmCommand.h +++ b/Source/cmCommand.h @@ -173,6 +173,25 @@ public: this->Error += e; } + /** Check if the command is disallowed by a policy. */ + bool Disallowed(cmPolicies::PolicyID pol, const char* e) + { + switch(this->Makefile->GetPolicyStatus(pol)) + { + case cmPolicies::WARN: + this->Makefile->IssueMessage(cmake::AUTHOR_WARNING, + this->Makefile->GetPolicies()->GetPolicyWarning(pol)); + case cmPolicies::OLD: + return false; + case cmPolicies::REQUIRED_IF_USED: + case cmPolicies::REQUIRED_ALWAYS: + case cmPolicies::NEW: + this->Makefile->IssueMessage(cmake::FATAL_ERROR, e); + break; + } + return true; + } + protected: cmMakefile* Makefile; cmCommandArgumentsHelper Helper; |