Skip to content
Snippets Groups Projects
Commit 6c9b3b5c authored by Daniel Pfeifer's avatar Daniel Pfeifer
Browse files

cmCommand: implement functions in cxx file

parent 8483dab8
No related branches found
No related tags found
No related merge requests found
......@@ -386,6 +386,8 @@ set(SRCS
cmake.cxx
cmake.h
cmCommand.cxx
cmCommand.h
cmCommands.cxx
cmCommands.h
cmAddCompileOptionsCommand.cxx
......
/* 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;
}
......@@ -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;
......
......@@ -254,6 +254,7 @@ CMAKE_CXX_SOURCES="\
cmCMakePolicyCommand \
cmCPackPropertiesGenerator \
cmCacheManager \
cmCommand \
cmCommandArgumentLexer \
cmCommandArgumentParser \
cmCommandArgumentParserHelper \
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment