summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Pfeifer <daniel@pfeifer-mail.de>2016-10-19 22:29:18 (GMT)
committerDaniel Pfeifer <daniel@pfeifer-mail.de>2016-10-21 16:14:51 (GMT)
commit6c9b3b5c03b41842d3d79c1bd80691be7e5c6f89 (patch)
tree2a3d630a70a3e5d6eeef5dc99847d51bcedd8589
parent8483dab8e16b9734ac7d2b90b95d474ce8502e40 (diff)
downloadCMake-6c9b3b5c03b41842d3d79c1bd80691be7e5c6f89.zip
CMake-6c9b3b5c03b41842d3d79c1bd80691be7e5c6f89.tar.gz
CMake-6c9b3b5c03b41842d3d79c1bd80691be7e5c6f89.tar.bz2
cmCommand: implement functions in cxx file
-rw-r--r--Source/CMakeLists.txt2
-rw-r--r--Source/cmCommand.cxx48
-rw-r--r--Source/cmCommand.h48
-rwxr-xr-xbootstrap1
4 files changed, 57 insertions, 42 deletions
diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt
index b2617ae..09c0acf 100644
--- a/Source/CMakeLists.txt
+++ b/Source/CMakeLists.txt
@@ -386,6 +386,8 @@ set(SRCS
cmake.cxx
cmake.h
+ cmCommand.cxx
+ cmCommand.h
cmCommands.cxx
cmCommands.h
cmAddCompileOptionsCommand.cxx
diff --git a/Source/cmCommand.cxx b/Source/cmCommand.cxx
new file mode 100644
index 0000000..3c839de
--- /dev/null
+++ b/Source/cmCommand.cxx
@@ -0,0 +1,48 @@
+/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+ file Copyright.txt or https://cmake.org/licensing for details. */
+#include "cmCommand.h"
+
+bool cmCommand::InvokeInitialPass(const std::vector<cmListFileArgument>& args,
+ cmExecutionStatus& status)
+{
+ std::vector<std::string> expandedArguments;
+ if (!this->Makefile->ExpandArguments(args, expandedArguments)) {
+ // There was an error expanding arguments. It was already
+ // reported, so we can skip this command without error.
+ return true;
+ }
+ return this->InitialPass(expandedArguments, status);
+}
+
+const char* cmCommand::GetError()
+{
+ if (this->Error.empty()) {
+ this->Error = this->GetName();
+ this->Error += " unknown error.";
+ }
+ return this->Error.c_str();
+}
+
+void cmCommand::SetError(const std::string& e)
+{
+ this->Error = this->GetName();
+ this->Error += " ";
+ this->Error += e;
+}
+
+bool cmCommand::Disallowed(cmPolicies::PolicyID pol, const char* e)
+{
+ switch (this->Makefile->GetPolicyStatus(pol)) {
+ case cmPolicies::WARN:
+ this->Makefile->IssueMessage(cmake::AUTHOR_WARNING,
+ cmPolicies::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;
+}
diff --git a/Source/cmCommand.h b/Source/cmCommand.h
index d8e337d..9299c71 100644
--- a/Source/cmCommand.h
+++ b/Source/cmCommand.h
@@ -28,9 +28,9 @@ public:
* Construct the command. By default it is enabled with no makefile.
*/
cmCommand()
+ : Makefile(CM_NULLPTR)
+ , Enabled(true)
{
- this->Makefile = CM_NULLPTR;
- this->Enabled = true;
}
/**
@@ -50,16 +50,7 @@ public:
* arguments and then invokes the InitialPass.
*/
virtual bool InvokeInitialPass(const std::vector<cmListFileArgument>& args,
- cmExecutionStatus& status)
- {
- std::vector<std::string> expandedArguments;
- if (!this->Makefile->ExpandArguments(args, expandedArguments)) {
- // There was an error expanding arguments. It was already
- // reported, so we can skip this command without error.
- return true;
- }
- return this->InitialPass(expandedArguments, status);
- }
+ cmExecutionStatus& status);
/**
* This is called when the command is first encountered in
@@ -127,42 +118,15 @@ public:
/**
* Return the last error string.
*/
- const char* GetError()
- {
- if (this->Error.empty()) {
- this->Error = this->GetName();
- this->Error += " unknown error.";
- }
- return this->Error.c_str();
- }
+ const char* GetError();
/**
* Set the error message
*/
- void SetError(const std::string& e)
- {
- this->Error = this->GetName();
- this->Error += " ";
- this->Error += e;
- }
+ void SetError(const std::string& 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,
- cmPolicies::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;
- }
+ bool Disallowed(cmPolicies::PolicyID pol, const char* e);
protected:
cmMakefile* Makefile;
diff --git a/bootstrap b/bootstrap
index ab76526..4ce0dee 100755
--- a/bootstrap
+++ b/bootstrap
@@ -254,6 +254,7 @@ CMAKE_CXX_SOURCES="\
cmCMakePolicyCommand \
cmCPackPropertiesGenerator \
cmCacheManager \
+ cmCommand \
cmCommandArgumentLexer \
cmCommandArgumentParser \
cmCommandArgumentParserHelper \