summaryrefslogtreecommitdiffstats
path: root/Source/cmDisallowedCommand.cxx
diff options
context:
space:
mode:
authorDaniel Pfeifer <daniel@pfeifer-mail.de>2016-12-25 23:34:44 (GMT)
committerDaniel Pfeifer <daniel@pfeifer-mail.de>2017-02-13 20:37:08 (GMT)
commit7fb14775a3cce73dc0cb0d759b96059a95f7104b (patch)
tree586ed2e3f7d5a89bb1920bee3c54b94362d797e3 /Source/cmDisallowedCommand.cxx
parent615e2a17e499b2bd53cce8da1a0cfae36d67b24a (diff)
downloadCMake-7fb14775a3cce73dc0cb0d759b96059a95f7104b.zip
CMake-7fb14775a3cce73dc0cb0d759b96059a95f7104b.tar.gz
CMake-7fb14775a3cce73dc0cb0d759b96059a95f7104b.tar.bz2
cmDisallowedCommand: extract policy checking from cmCommand
Implement cmDisallowedCommand as a wrapper class for cmCommand.
Diffstat (limited to 'Source/cmDisallowedCommand.cxx')
-rw-r--r--Source/cmDisallowedCommand.cxx31
1 files changed, 31 insertions, 0 deletions
diff --git a/Source/cmDisallowedCommand.cxx b/Source/cmDisallowedCommand.cxx
new file mode 100644
index 0000000..ce1965d
--- /dev/null
+++ b/Source/cmDisallowedCommand.cxx
@@ -0,0 +1,31 @@
+/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+ file Copyright.txt or https://cmake.org/licensing for details. */
+#include "cmDisallowedCommand.h"
+
+#include "cmMakefile.h"
+#include "cmake.h"
+
+class cmExecutionStatus;
+
+bool cmDisallowedCommand::InitialPass(std::vector<std::string> const& args,
+ cmExecutionStatus& status)
+{
+ switch (this->Makefile->GetPolicyStatus(this->Policy)) {
+ case cmPolicies::WARN:
+ this->Makefile->IssueMessage(cmake::AUTHOR_WARNING,
+ cmPolicies::GetPolicyWarning(this->Policy));
+ break;
+ case cmPolicies::OLD:
+ break;
+ case cmPolicies::REQUIRED_IF_USED:
+ case cmPolicies::REQUIRED_ALWAYS:
+ case cmPolicies::NEW:
+ this->Makefile->IssueMessage(cmake::FATAL_ERROR, this->Message);
+ return true;
+ }
+
+ this->Command->SetMakefile(this->GetMakefile());
+ bool const ret = this->Command->InitialPass(args, status);
+ this->SetError(this->Command->GetError());
+ return ret;
+}