cmGetTestPropertyCommand: Port away from cmCommand

Ref: #19499
This commit is contained in:
Regina Pfeifer
2019-09-12 10:14:27 +02:00
parent 0b95c64e43
commit b46970cfe9
3 changed files with 11 additions and 30 deletions
+1 -2
View File
@@ -230,8 +230,7 @@ void GetProjectCommands(cmState* state)
state->AddBuiltinCommand("get_source_file_property",
cmGetSourceFilePropertyCommand);
state->AddBuiltinCommand("get_target_property", cmGetTargetPropertyCommand);
state->AddBuiltinCommand("get_test_property",
cm::make_unique<cmGetTestPropertyCommand>());
state->AddBuiltinCommand("get_test_property", cmGetTestPropertyCommand);
state->AddBuiltinCommand("include_directories",
cm::make_unique<cmIncludeDirectoryCommand>());
state->AddBuiltinCommand(
+8 -9
View File
@@ -2,33 +2,32 @@
file Copyright.txt or https://cmake.org/licensing for details. */
#include "cmGetTestPropertyCommand.h"
#include "cmExecutionStatus.h"
#include "cmMakefile.h"
#include "cmTest.h"
class cmExecutionStatus;
// cmGetTestPropertyCommand
bool cmGetTestPropertyCommand::InitialPass(
std::vector<std::string> const& args, cmExecutionStatus&)
bool cmGetTestPropertyCommand(std::vector<std::string> const& args,
cmExecutionStatus& status)
{
if (args.size() < 3) {
this->SetError("called with incorrect number of arguments");
status.SetError("called with incorrect number of arguments");
return false;
}
std::string const& testName = args[0];
std::string const& var = args[2];
cmTest* test = this->Makefile->GetTest(testName);
cmMakefile& mf = status.GetMakefile();
cmTest* test = mf.GetTest(testName);
if (test) {
const char* prop = nullptr;
if (!args[1].empty()) {
prop = test->GetProperty(args[1]);
}
if (prop) {
this->Makefile->AddDefinition(var, prop);
mf.AddDefinition(var, prop);
return true;
}
}
this->Makefile->AddDefinition(var, "NOTFOUND");
mf.AddDefinition(var, "NOTFOUND");
return true;
}
+2 -19
View File
@@ -8,26 +8,9 @@
#include <string>
#include <vector>
#include "cm_memory.hxx"
#include "cmCommand.h"
class cmExecutionStatus;
class cmGetTestPropertyCommand : public cmCommand
{
public:
std::unique_ptr<cmCommand> Clone() override
{
return cm::make_unique<cmGetTestPropertyCommand>();
}
/**
* This is called when the command is first encountered in
* the input file.
*/
bool InitialPass(std::vector<std::string> const& args,
cmExecutionStatus& status) override;
};
bool cmGetTestPropertyCommand(std::vector<std::string> const& args,
cmExecutionStatus& status);
#endif