summaryrefslogtreecommitdiffstats
path: root/Source/cmDisallowedCommand.h
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.h
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.h')
-rw-r--r--Source/cmDisallowedCommand.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/Source/cmDisallowedCommand.h b/Source/cmDisallowedCommand.h
new file mode 100644
index 0000000..9cf5e6f
--- /dev/null
+++ b/Source/cmDisallowedCommand.h
@@ -0,0 +1,50 @@
+/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+ file Copyright.txt or https://cmake.org/licensing for details. */
+#ifndef cmDisallowedCommand_h
+#define cmDisallowedCommand_h
+
+#include <cmConfigure.h>
+#include <string>
+#include <vector>
+
+#include "cmCommand.h"
+#include "cmPolicies.h"
+
+class cmExecutionStatus;
+
+class cmDisallowedCommand : public cmCommand
+{
+public:
+ cmDisallowedCommand(cmCommand* command, cmPolicies::PolicyID policy,
+ const char* message)
+ : Command(command)
+ , Policy(policy)
+ , Message(message)
+ {
+ }
+
+ ~cmDisallowedCommand() CM_OVERRIDE { delete this->Command; }
+
+ cmCommand* Clone() CM_OVERRIDE
+ {
+ return new cmDisallowedCommand(this->Command->Clone(), this->Policy,
+ this->Message);
+ }
+
+ bool InitialPass(std::vector<std::string> const& args,
+ cmExecutionStatus& status) CM_OVERRIDE;
+
+ bool IsScriptable() const CM_OVERRIDE
+ {
+ return this->Command->IsScriptable();
+ }
+
+ std::string GetName() const CM_OVERRIDE { return this->Command->GetName(); }
+
+private:
+ cmCommand* Command;
+ cmPolicies::PolicyID Policy;
+ const char* Message;
+};
+
+#endif