mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-09 15:20:56 -06:00
cmCommand: implement functions in cxx file
This commit is contained in:
@@ -386,6 +386,8 @@ set(SRCS
|
||||
cmake.cxx
|
||||
cmake.h
|
||||
|
||||
cmCommand.cxx
|
||||
cmCommand.h
|
||||
cmCommands.cxx
|
||||
cmCommands.h
|
||||
cmAddCompileOptionsCommand.cxx
|
||||
|
||||
48
Source/cmCommand.cxx
Normal file
48
Source/cmCommand.cxx
Normal file
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user