mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-25 01:28:50 -05:00
cmCTest*Command: Port away from cmCommand
Copy the necessary parts, but remove cloning and make all commands immutable.
This commit is contained in:
@@ -1076,6 +1076,7 @@ add_library(
|
|||||||
CTest/cmCTestBuildAndTest.cxx
|
CTest/cmCTestBuildAndTest.cxx
|
||||||
CTest/cmCTestBuildCommand.cxx
|
CTest/cmCTestBuildCommand.cxx
|
||||||
CTest/cmCTestBuildHandler.cxx
|
CTest/cmCTestBuildHandler.cxx
|
||||||
|
CTest/cmCTestCommand.cxx
|
||||||
CTest/cmCTestConfigureCommand.cxx
|
CTest/cmCTestConfigureCommand.cxx
|
||||||
CTest/cmCTestConfigureHandler.cxx
|
CTest/cmCTestConfigureHandler.cxx
|
||||||
CTest/cmCTestCoverageCommand.cxx
|
CTest/cmCTestCoverageCommand.cxx
|
||||||
|
|||||||
@@ -12,7 +12,6 @@
|
|||||||
#include "cmCTest.h"
|
#include "cmCTest.h"
|
||||||
#include "cmCTestBuildHandler.h"
|
#include "cmCTestBuildHandler.h"
|
||||||
#include "cmCTestGenericHandler.h"
|
#include "cmCTestGenericHandler.h"
|
||||||
#include "cmCommand.h"
|
|
||||||
#include "cmExecutionStatus.h"
|
#include "cmExecutionStatus.h"
|
||||||
#include "cmGlobalGenerator.h"
|
#include "cmGlobalGenerator.h"
|
||||||
#include "cmMakefile.h"
|
#include "cmMakefile.h"
|
||||||
@@ -22,15 +21,8 @@
|
|||||||
#include "cmValue.h"
|
#include "cmValue.h"
|
||||||
#include "cmake.h"
|
#include "cmake.h"
|
||||||
|
|
||||||
std::unique_ptr<cmCommand> cmCTestBuildCommand::Clone()
|
|
||||||
{
|
|
||||||
auto ni = cm::make_unique<cmCTestBuildCommand>();
|
|
||||||
ni->CTest = this->CTest;
|
|
||||||
return std::unique_ptr<cmCommand>(std::move(ni));
|
|
||||||
}
|
|
||||||
|
|
||||||
bool cmCTestBuildCommand::InitialPass(std::vector<std::string> const& args,
|
bool cmCTestBuildCommand::InitialPass(std::vector<std::string> const& args,
|
||||||
cmExecutionStatus& status)
|
cmExecutionStatus& status) const
|
||||||
{
|
{
|
||||||
static auto const parser =
|
static auto const parser =
|
||||||
cmArgumentParser<BuildArguments>{ MakeHandlerParser<BuildArguments>() }
|
cmArgumentParser<BuildArguments>{ MakeHandlerParser<BuildArguments>() }
|
||||||
|
|||||||
@@ -12,7 +12,6 @@
|
|||||||
|
|
||||||
class cmExecutionStatus;
|
class cmExecutionStatus;
|
||||||
class cmCTestGenericHandler;
|
class cmCTestGenericHandler;
|
||||||
class cmCommand;
|
|
||||||
|
|
||||||
class cmCTestBuildCommand : public cmCTestHandlerCommand
|
class cmCTestBuildCommand : public cmCTestHandlerCommand
|
||||||
{
|
{
|
||||||
@@ -32,8 +31,6 @@ protected:
|
|||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::unique_ptr<cmCommand> Clone() override;
|
|
||||||
|
|
||||||
std::string GetName() const override { return "ctest_build"; }
|
std::string GetName() const override { return "ctest_build"; }
|
||||||
|
|
||||||
std::unique_ptr<cmCTestGenericHandler> InitializeHandler(
|
std::unique_ptr<cmCTestGenericHandler> InitializeHandler(
|
||||||
@@ -44,5 +41,5 @@ private:
|
|||||||
cmExecutionStatus& status) const override;
|
cmExecutionStatus& status) const override;
|
||||||
|
|
||||||
bool InitialPass(std::vector<std::string> const& args,
|
bool InitialPass(std::vector<std::string> const& args,
|
||||||
cmExecutionStatus& status) override;
|
cmExecutionStatus& status) const override;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||||
|
file Copyright.txt or https://cmake.org/licensing for details. */
|
||||||
|
#include "cmCTestCommand.h"
|
||||||
|
|
||||||
|
#include "cmExecutionStatus.h"
|
||||||
|
#include "cmMakefile.h"
|
||||||
|
|
||||||
|
bool cmCTestCommand::operator()(std::vector<cmListFileArgument> const& args,
|
||||||
|
cmExecutionStatus& status) const
|
||||||
|
{
|
||||||
|
cmMakefile& mf = status.GetMakefile();
|
||||||
|
std::vector<std::string> expandedArguments;
|
||||||
|
if (!mf.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);
|
||||||
|
}
|
||||||
@@ -2,9 +2,14 @@
|
|||||||
file Copyright.txt or https://cmake.org/licensing for details. */
|
file Copyright.txt or https://cmake.org/licensing for details. */
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "cmCommand.h"
|
#include "cmConfigure.h" // IWYU pragma: keep
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
class cmCTest;
|
class cmCTest;
|
||||||
|
class cmExecutionStatus;
|
||||||
|
struct cmListFileArgument;
|
||||||
|
|
||||||
/** \class cmCTestCommand
|
/** \class cmCTestCommand
|
||||||
* \brief A superclass for all commands added to the CTestScriptHandler
|
* \brief A superclass for all commands added to the CTestScriptHandler
|
||||||
@@ -13,8 +18,25 @@ class cmCTest;
|
|||||||
* the ctest script handlers parser.
|
* the ctest script handlers parser.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
class cmCTestCommand : public cmCommand
|
class cmCTestCommand
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
cmCTestCommand(cmCTest* ctest)
|
||||||
|
: CTest(ctest)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual ~cmCTestCommand() = default;
|
||||||
|
cmCTestCommand(cmCTestCommand const&) = default;
|
||||||
|
cmCTestCommand& operator=(cmCTestCommand const&) = default;
|
||||||
|
|
||||||
|
bool operator()(std::vector<cmListFileArgument> const& args,
|
||||||
|
cmExecutionStatus& status) const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
virtual bool InitialPass(std::vector<std::string> const& args,
|
||||||
|
cmExecutionStatus&) const = 0;
|
||||||
|
|
||||||
|
protected:
|
||||||
cmCTest* CTest = nullptr;
|
cmCTest* CTest = nullptr;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -14,7 +14,6 @@
|
|||||||
#include "cmCTest.h"
|
#include "cmCTest.h"
|
||||||
#include "cmCTestConfigureHandler.h"
|
#include "cmCTestConfigureHandler.h"
|
||||||
#include "cmCTestGenericHandler.h"
|
#include "cmCTestGenericHandler.h"
|
||||||
#include "cmCommand.h"
|
|
||||||
#include "cmExecutionStatus.h"
|
#include "cmExecutionStatus.h"
|
||||||
#include "cmGlobalGenerator.h"
|
#include "cmGlobalGenerator.h"
|
||||||
#include "cmList.h"
|
#include "cmList.h"
|
||||||
@@ -24,13 +23,6 @@
|
|||||||
#include "cmValue.h"
|
#include "cmValue.h"
|
||||||
#include "cmake.h"
|
#include "cmake.h"
|
||||||
|
|
||||||
std::unique_ptr<cmCommand> cmCTestConfigureCommand::Clone()
|
|
||||||
{
|
|
||||||
auto ni = cm::make_unique<cmCTestConfigureCommand>();
|
|
||||||
ni->CTest = this->CTest;
|
|
||||||
return std::unique_ptr<cmCommand>(std::move(ni));
|
|
||||||
}
|
|
||||||
|
|
||||||
std::unique_ptr<cmCTestGenericHandler>
|
std::unique_ptr<cmCTestGenericHandler>
|
||||||
cmCTestConfigureCommand::InitializeHandler(HandlerArguments& arguments,
|
cmCTestConfigureCommand::InitializeHandler(HandlerArguments& arguments,
|
||||||
cmExecutionStatus& status) const
|
cmExecutionStatus& status) const
|
||||||
@@ -164,7 +156,7 @@ cmCTestConfigureCommand::InitializeHandler(HandlerArguments& arguments,
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool cmCTestConfigureCommand::InitialPass(std::vector<std::string> const& args,
|
bool cmCTestConfigureCommand::InitialPass(std::vector<std::string> const& args,
|
||||||
cmExecutionStatus& status)
|
cmExecutionStatus& status) const
|
||||||
{
|
{
|
||||||
using Args = ConfigureArguments;
|
using Args = ConfigureArguments;
|
||||||
static auto const parser =
|
static auto const parser =
|
||||||
|
|||||||
@@ -12,7 +12,6 @@
|
|||||||
|
|
||||||
class cmExecutionStatus;
|
class cmExecutionStatus;
|
||||||
class cmCTestGenericHandler;
|
class cmCTestGenericHandler;
|
||||||
class cmCommand;
|
|
||||||
|
|
||||||
class cmCTestConfigureCommand : public cmCTestHandlerCommand
|
class cmCTestConfigureCommand : public cmCTestHandlerCommand
|
||||||
{
|
{
|
||||||
@@ -26,13 +25,11 @@ protected:
|
|||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::unique_ptr<cmCommand> Clone() override;
|
|
||||||
|
|
||||||
std::string GetName() const override { return "ctest_configure"; }
|
std::string GetName() const override { return "ctest_configure"; }
|
||||||
|
|
||||||
std::unique_ptr<cmCTestGenericHandler> InitializeHandler(
|
std::unique_ptr<cmCTestGenericHandler> InitializeHandler(
|
||||||
HandlerArguments& arguments, cmExecutionStatus& status) const override;
|
HandlerArguments& arguments, cmExecutionStatus& status) const override;
|
||||||
|
|
||||||
bool InitialPass(std::vector<std::string> const& args,
|
bool InitialPass(std::vector<std::string> const& args,
|
||||||
cmExecutionStatus& status) override;
|
cmExecutionStatus& status) const override;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -12,18 +12,10 @@
|
|||||||
#include "cmCTest.h"
|
#include "cmCTest.h"
|
||||||
#include "cmCTestCoverageHandler.h"
|
#include "cmCTestCoverageHandler.h"
|
||||||
#include "cmCTestGenericHandler.h"
|
#include "cmCTestGenericHandler.h"
|
||||||
#include "cmCommand.h"
|
|
||||||
#include "cmExecutionStatus.h"
|
#include "cmExecutionStatus.h"
|
||||||
|
|
||||||
class cmMakefile;
|
class cmMakefile;
|
||||||
|
|
||||||
std::unique_ptr<cmCommand> cmCTestCoverageCommand::Clone()
|
|
||||||
{
|
|
||||||
auto ni = cm::make_unique<cmCTestCoverageCommand>();
|
|
||||||
ni->CTest = this->CTest;
|
|
||||||
return std::unique_ptr<cmCommand>(std::move(ni));
|
|
||||||
}
|
|
||||||
|
|
||||||
std::unique_ptr<cmCTestGenericHandler>
|
std::unique_ptr<cmCTestGenericHandler>
|
||||||
cmCTestCoverageCommand::InitializeHandler(HandlerArguments& arguments,
|
cmCTestCoverageCommand::InitializeHandler(HandlerArguments& arguments,
|
||||||
cmExecutionStatus& status) const
|
cmExecutionStatus& status) const
|
||||||
@@ -47,7 +39,7 @@ cmCTestCoverageCommand::InitializeHandler(HandlerArguments& arguments,
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool cmCTestCoverageCommand::InitialPass(std::vector<std::string> const& args,
|
bool cmCTestCoverageCommand::InitialPass(std::vector<std::string> const& args,
|
||||||
cmExecutionStatus& status)
|
cmExecutionStatus& status) const
|
||||||
{
|
{
|
||||||
using Args = CoverageArguments;
|
using Args = CoverageArguments;
|
||||||
static auto const parser =
|
static auto const parser =
|
||||||
|
|||||||
@@ -15,7 +15,6 @@
|
|||||||
|
|
||||||
class cmExecutionStatus;
|
class cmExecutionStatus;
|
||||||
class cmCTestGenericHandler;
|
class cmCTestGenericHandler;
|
||||||
class cmCommand;
|
|
||||||
|
|
||||||
class cmCTestCoverageCommand : public cmCTestHandlerCommand
|
class cmCTestCoverageCommand : public cmCTestHandlerCommand
|
||||||
{
|
{
|
||||||
@@ -29,13 +28,11 @@ protected:
|
|||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::unique_ptr<cmCommand> Clone() override;
|
|
||||||
|
|
||||||
std::string GetName() const override { return "ctest_coverage"; }
|
std::string GetName() const override { return "ctest_coverage"; }
|
||||||
|
|
||||||
std::unique_ptr<cmCTestGenericHandler> InitializeHandler(
|
std::unique_ptr<cmCTestGenericHandler> InitializeHandler(
|
||||||
HandlerArguments& arguments, cmExecutionStatus& status) const override;
|
HandlerArguments& arguments, cmExecutionStatus& status) const override;
|
||||||
|
|
||||||
bool InitialPass(std::vector<std::string> const& args,
|
bool InitialPass(std::vector<std::string> const& args,
|
||||||
cmExecutionStatus& status) override;
|
cmExecutionStatus& status) const override;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -11,17 +11,9 @@
|
|||||||
#include "cmCTest.h"
|
#include "cmCTest.h"
|
||||||
#include "cmCTestMemCheckHandler.h"
|
#include "cmCTestMemCheckHandler.h"
|
||||||
#include "cmCTestTestHandler.h"
|
#include "cmCTestTestHandler.h"
|
||||||
#include "cmCommand.h"
|
|
||||||
#include "cmExecutionStatus.h"
|
#include "cmExecutionStatus.h"
|
||||||
#include "cmMakefile.h"
|
#include "cmMakefile.h"
|
||||||
|
|
||||||
std::unique_ptr<cmCommand> cmCTestMemCheckCommand::Clone()
|
|
||||||
{
|
|
||||||
auto ni = cm::make_unique<cmCTestMemCheckCommand>();
|
|
||||||
ni->CTest = this->CTest;
|
|
||||||
return std::unique_ptr<cmCommand>(std::move(ni));
|
|
||||||
}
|
|
||||||
|
|
||||||
std::unique_ptr<cmCTestTestHandler>
|
std::unique_ptr<cmCTestTestHandler>
|
||||||
cmCTestMemCheckCommand::InitializeActualHandler(
|
cmCTestMemCheckCommand::InitializeActualHandler(
|
||||||
HandlerArguments& args, cmExecutionStatus& status) const
|
HandlerArguments& args, cmExecutionStatus& status) const
|
||||||
@@ -62,7 +54,7 @@ void cmCTestMemCheckCommand::ProcessAdditionalValues(
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool cmCTestMemCheckCommand::InitialPass(std::vector<std::string> const& args,
|
bool cmCTestMemCheckCommand::InitialPass(std::vector<std::string> const& args,
|
||||||
cmExecutionStatus& status)
|
cmExecutionStatus& status) const
|
||||||
{
|
{
|
||||||
static auto const parser =
|
static auto const parser =
|
||||||
cmArgumentParser<MemCheckArguments>{ MakeTestParser<MemCheckArguments>() }
|
cmArgumentParser<MemCheckArguments>{ MakeTestParser<MemCheckArguments>() }
|
||||||
|
|||||||
@@ -13,7 +13,6 @@
|
|||||||
class cmExecutionStatus;
|
class cmExecutionStatus;
|
||||||
class cmCTestGenericHandler;
|
class cmCTestGenericHandler;
|
||||||
class cmCTestTestHandler;
|
class cmCTestTestHandler;
|
||||||
class cmCommand;
|
|
||||||
|
|
||||||
class cmCTestMemCheckCommand : public cmCTestTestCommand
|
class cmCTestMemCheckCommand : public cmCTestTestCommand
|
||||||
{
|
{
|
||||||
@@ -27,8 +26,6 @@ protected:
|
|||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::unique_ptr<cmCommand> Clone() override;
|
|
||||||
|
|
||||||
std::string GetName() const override { return "ctest_memcheck"; }
|
std::string GetName() const override { return "ctest_memcheck"; }
|
||||||
|
|
||||||
std::unique_ptr<cmCTestTestHandler> InitializeActualHandler(
|
std::unique_ptr<cmCTestTestHandler> InitializeActualHandler(
|
||||||
@@ -39,5 +36,5 @@ private:
|
|||||||
cmExecutionStatus& status) const override;
|
cmExecutionStatus& status) const override;
|
||||||
|
|
||||||
bool InitialPass(std::vector<std::string> const& args,
|
bool InitialPass(std::vector<std::string> const& args,
|
||||||
cmExecutionStatus& status) override;
|
cmExecutionStatus& status) const override;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
class cmMakefile;
|
class cmMakefile;
|
||||||
|
|
||||||
bool cmCTestReadCustomFilesCommand::InitialPass(
|
bool cmCTestReadCustomFilesCommand::InitialPass(
|
||||||
std::vector<std::string> const& args, cmExecutionStatus& status)
|
std::vector<std::string> const& args, cmExecutionStatus& status) const
|
||||||
{
|
{
|
||||||
if (args.empty()) {
|
if (args.empty()) {
|
||||||
status.SetError("called with incorrect number of arguments");
|
status.SetError("called with incorrect number of arguments");
|
||||||
|
|||||||
@@ -5,13 +5,9 @@
|
|||||||
#include "cmConfigure.h" // IWYU pragma: keep
|
#include "cmConfigure.h" // IWYU pragma: keep
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <utility>
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include <cm/memory>
|
|
||||||
|
|
||||||
#include "cmCTestCommand.h"
|
#include "cmCTestCommand.h"
|
||||||
#include "cmCommand.h"
|
|
||||||
|
|
||||||
class cmExecutionStatus;
|
class cmExecutionStatus;
|
||||||
|
|
||||||
@@ -24,22 +20,12 @@ class cmExecutionStatus;
|
|||||||
class cmCTestReadCustomFilesCommand : public cmCTestCommand
|
class cmCTestReadCustomFilesCommand : public cmCTestCommand
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
cmCTestReadCustomFilesCommand() {}
|
using cmCTestCommand::cmCTestCommand;
|
||||||
|
|
||||||
/**
|
|
||||||
* This is a virtual constructor for the command.
|
|
||||||
*/
|
|
||||||
std::unique_ptr<cmCommand> Clone() override
|
|
||||||
{
|
|
||||||
auto ni = cm::make_unique<cmCTestReadCustomFilesCommand>();
|
|
||||||
ni->CTest = this->CTest;
|
|
||||||
return std::unique_ptr<cmCommand>(std::move(ni));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is called when the command is first encountered in
|
* This is called when the command is first encountered in
|
||||||
* the CMakeLists.txt file.
|
* the CMakeLists.txt file.
|
||||||
*/
|
*/
|
||||||
bool InitialPass(std::vector<std::string> const& args,
|
bool InitialPass(std::vector<std::string> const& args,
|
||||||
cmExecutionStatus& status) override;
|
cmExecutionStatus& status) const override;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
#include "cmSystemTools.h"
|
#include "cmSystemTools.h"
|
||||||
|
|
||||||
bool cmCTestRunScriptCommand::InitialPass(std::vector<std::string> const& args,
|
bool cmCTestRunScriptCommand::InitialPass(std::vector<std::string> const& args,
|
||||||
cmExecutionStatus& status)
|
cmExecutionStatus& status) const
|
||||||
{
|
{
|
||||||
if (args.empty()) {
|
if (args.empty()) {
|
||||||
status.SetError("called with incorrect number of arguments");
|
status.SetError("called with incorrect number of arguments");
|
||||||
|
|||||||
@@ -5,13 +5,9 @@
|
|||||||
#include "cmConfigure.h" // IWYU pragma: keep
|
#include "cmConfigure.h" // IWYU pragma: keep
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <utility>
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include <cm/memory>
|
|
||||||
|
|
||||||
#include "cmCTestCommand.h"
|
#include "cmCTestCommand.h"
|
||||||
#include "cmCommand.h"
|
|
||||||
|
|
||||||
class cmExecutionStatus;
|
class cmExecutionStatus;
|
||||||
|
|
||||||
@@ -24,22 +20,12 @@ class cmExecutionStatus;
|
|||||||
class cmCTestRunScriptCommand : public cmCTestCommand
|
class cmCTestRunScriptCommand : public cmCTestCommand
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
cmCTestRunScriptCommand() {}
|
using cmCTestCommand::cmCTestCommand;
|
||||||
|
|
||||||
/**
|
|
||||||
* This is a virtual constructor for the command.
|
|
||||||
*/
|
|
||||||
std::unique_ptr<cmCommand> Clone() override
|
|
||||||
{
|
|
||||||
auto ni = cm::make_unique<cmCTestRunScriptCommand>();
|
|
||||||
ni->CTest = this->CTest;
|
|
||||||
return std::unique_ptr<cmCommand>(std::move(ni));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is called when the command is first encountered in
|
* This is called when the command is first encountered in
|
||||||
* the CMakeLists.txt file.
|
* the CMakeLists.txt file.
|
||||||
*/
|
*/
|
||||||
bool InitialPass(std::vector<std::string> const& args,
|
bool InitialPass(std::vector<std::string> const& args,
|
||||||
cmExecutionStatus& status) override;
|
cmExecutionStatus& status) const override;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -15,7 +15,6 @@
|
|||||||
|
|
||||||
#include "cmCTest.h"
|
#include "cmCTest.h"
|
||||||
#include "cmCTestBuildCommand.h"
|
#include "cmCTestBuildCommand.h"
|
||||||
#include "cmCTestCommand.h"
|
|
||||||
#include "cmCTestConfigureCommand.h"
|
#include "cmCTestConfigureCommand.h"
|
||||||
#include "cmCTestCoverageCommand.h"
|
#include "cmCTestCoverageCommand.h"
|
||||||
#include "cmCTestEmptyBinaryDirectoryCommand.h"
|
#include "cmCTestEmptyBinaryDirectoryCommand.h"
|
||||||
@@ -28,7 +27,6 @@
|
|||||||
#include "cmCTestTestCommand.h"
|
#include "cmCTestTestCommand.h"
|
||||||
#include "cmCTestUpdateCommand.h"
|
#include "cmCTestUpdateCommand.h"
|
||||||
#include "cmCTestUploadCommand.h"
|
#include "cmCTestUploadCommand.h"
|
||||||
#include "cmCommand.h"
|
|
||||||
#include "cmDuration.h"
|
#include "cmDuration.h"
|
||||||
#include "cmGlobalGenerator.h"
|
#include "cmGlobalGenerator.h"
|
||||||
#include "cmMakefile.h"
|
#include "cmMakefile.h"
|
||||||
@@ -81,13 +79,6 @@ void cmCTestScriptHandler::UpdateElapsedTime()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void cmCTestScriptHandler::AddCTestCommand(
|
|
||||||
std::string const& name, std::unique_ptr<cmCTestCommand> command)
|
|
||||||
{
|
|
||||||
command->CTest = this->CTest;
|
|
||||||
this->CMake->GetState()->AddBuiltinCommand(name, std::move(command));
|
|
||||||
}
|
|
||||||
|
|
||||||
int cmCTestScriptHandler::ExecuteScript(const std::string& total_script_arg)
|
int cmCTestScriptHandler::ExecuteScript(const std::string& total_script_arg)
|
||||||
{
|
{
|
||||||
// execute the script passing in the arguments to the script as well as the
|
// execute the script passing in the arguments to the script as well as the
|
||||||
@@ -206,28 +197,25 @@ void cmCTestScriptHandler::CreateCMake()
|
|||||||
});
|
});
|
||||||
|
|
||||||
cmState* state = this->CMake->GetState();
|
cmState* state = this->CMake->GetState();
|
||||||
this->AddCTestCommand("ctest_build", cm::make_unique<cmCTestBuildCommand>());
|
state->AddBuiltinCommand("ctest_build", cmCTestBuildCommand(this->CTest));
|
||||||
this->AddCTestCommand("ctest_configure",
|
state->AddBuiltinCommand("ctest_configure",
|
||||||
cm::make_unique<cmCTestConfigureCommand>());
|
cmCTestConfigureCommand(this->CTest));
|
||||||
this->AddCTestCommand("ctest_coverage",
|
state->AddBuiltinCommand("ctest_coverage",
|
||||||
cm::make_unique<cmCTestCoverageCommand>());
|
cmCTestCoverageCommand(this->CTest));
|
||||||
state->AddBuiltinCommand("ctest_empty_binary_directory",
|
state->AddBuiltinCommand("ctest_empty_binary_directory",
|
||||||
cmCTestEmptyBinaryDirectoryCommand);
|
cmCTestEmptyBinaryDirectoryCommand);
|
||||||
this->AddCTestCommand("ctest_memcheck",
|
state->AddBuiltinCommand("ctest_memcheck",
|
||||||
cm::make_unique<cmCTestMemCheckCommand>());
|
cmCTestMemCheckCommand(this->CTest));
|
||||||
this->AddCTestCommand("ctest_read_custom_files",
|
state->AddBuiltinCommand("ctest_read_custom_files",
|
||||||
cm::make_unique<cmCTestReadCustomFilesCommand>());
|
cmCTestReadCustomFilesCommand(this->CTest));
|
||||||
this->AddCTestCommand("ctest_run_script",
|
state->AddBuiltinCommand("ctest_run_script",
|
||||||
cm::make_unique<cmCTestRunScriptCommand>());
|
cmCTestRunScriptCommand(this->CTest));
|
||||||
state->AddBuiltinCommand("ctest_sleep", cmCTestSleepCommand);
|
state->AddBuiltinCommand("ctest_sleep", cmCTestSleepCommand);
|
||||||
this->AddCTestCommand("ctest_start", cm::make_unique<cmCTestStartCommand>());
|
state->AddBuiltinCommand("ctest_start", cmCTestStartCommand(this->CTest));
|
||||||
this->AddCTestCommand("ctest_submit",
|
state->AddBuiltinCommand("ctest_submit", cmCTestSubmitCommand(this->CTest));
|
||||||
cm::make_unique<cmCTestSubmitCommand>());
|
state->AddBuiltinCommand("ctest_test", cmCTestTestCommand(this->CTest));
|
||||||
this->AddCTestCommand("ctest_test", cm::make_unique<cmCTestTestCommand>());
|
state->AddBuiltinCommand("ctest_update", cmCTestUpdateCommand(this->CTest));
|
||||||
this->AddCTestCommand("ctest_update",
|
state->AddBuiltinCommand("ctest_upload", cmCTestUploadCommand(this->CTest));
|
||||||
cm::make_unique<cmCTestUpdateCommand>());
|
|
||||||
this->AddCTestCommand("ctest_upload",
|
|
||||||
cm::make_unique<cmCTestUploadCommand>());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// this sets up some variables for the script to use, creates the required
|
// this sets up some variables for the script to use, creates the required
|
||||||
|
|||||||
@@ -9,7 +9,6 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
class cmCTest;
|
class cmCTest;
|
||||||
class cmCTestCommand;
|
|
||||||
class cmGlobalGenerator;
|
class cmGlobalGenerator;
|
||||||
class cmMakefile;
|
class cmMakefile;
|
||||||
class cmake;
|
class cmake;
|
||||||
@@ -58,10 +57,6 @@ private:
|
|||||||
|
|
||||||
int RunConfigurationScript(const std::string& script, bool pscope);
|
int RunConfigurationScript(const std::string& script, bool pscope);
|
||||||
|
|
||||||
// Add ctest command
|
|
||||||
void AddCTestCommand(std::string const& name,
|
|
||||||
std::unique_ptr<cmCTestCommand> command);
|
|
||||||
|
|
||||||
cmCTest* CTest = nullptr;
|
cmCTest* CTest = nullptr;
|
||||||
std::vector<std::string> ConfigurationScripts;
|
std::vector<std::string> ConfigurationScripts;
|
||||||
std::vector<bool> ScriptProcessScope;
|
std::vector<bool> ScriptProcessScope;
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
#include "cmValue.h"
|
#include "cmValue.h"
|
||||||
|
|
||||||
bool cmCTestStartCommand::InitialPass(std::vector<std::string> const& args,
|
bool cmCTestStartCommand::InitialPass(std::vector<std::string> const& args,
|
||||||
cmExecutionStatus& status)
|
cmExecutionStatus& status) const
|
||||||
{
|
{
|
||||||
if (args.empty()) {
|
if (args.empty()) {
|
||||||
status.SetError("called with incorrect number of arguments");
|
status.SetError("called with incorrect number of arguments");
|
||||||
@@ -226,7 +226,7 @@ bool cmCTestStartCommand::InitialPass(std::vector<std::string> const& args,
|
|||||||
|
|
||||||
bool cmCTestStartCommand::InitialCheckout(std::ostream& ofs,
|
bool cmCTestStartCommand::InitialCheckout(std::ostream& ofs,
|
||||||
std::string const& sourceDir,
|
std::string const& sourceDir,
|
||||||
cmExecutionStatus& status)
|
cmExecutionStatus& status) const
|
||||||
{
|
{
|
||||||
cmMakefile& mf = status.GetMakefile();
|
cmMakefile& mf = status.GetMakefile();
|
||||||
// Use the user-provided command to create the source tree.
|
// Use the user-provided command to create the source tree.
|
||||||
|
|||||||
@@ -6,13 +6,9 @@
|
|||||||
|
|
||||||
#include <iosfwd>
|
#include <iosfwd>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <utility>
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include <cm/memory>
|
|
||||||
|
|
||||||
#include "cmCTestCommand.h"
|
#include "cmCTestCommand.h"
|
||||||
#include "cmCommand.h"
|
|
||||||
|
|
||||||
class cmExecutionStatus;
|
class cmExecutionStatus;
|
||||||
|
|
||||||
@@ -24,24 +20,16 @@ class cmExecutionStatus;
|
|||||||
class cmCTestStartCommand : public cmCTestCommand
|
class cmCTestStartCommand : public cmCTestCommand
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
/**
|
using cmCTestCommand::cmCTestCommand;
|
||||||
* This is a virtual constructor for the command.
|
|
||||||
*/
|
|
||||||
std::unique_ptr<cmCommand> Clone() override
|
|
||||||
{
|
|
||||||
auto ni = cm::make_unique<cmCTestStartCommand>();
|
|
||||||
ni->CTest = this->CTest;
|
|
||||||
return std::unique_ptr<cmCommand>(std::move(ni));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is called when the command is first encountered in
|
* This is called when the command is first encountered in
|
||||||
* the CMakeLists.txt file.
|
* the CMakeLists.txt file.
|
||||||
*/
|
*/
|
||||||
bool InitialPass(std::vector<std::string> const& args,
|
bool InitialPass(std::vector<std::string> const& args,
|
||||||
cmExecutionStatus& status) override;
|
cmExecutionStatus& status) const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool InitialCheckout(std::ostream& ofs, std::string const& sourceDir,
|
bool InitialCheckout(std::ostream& ofs, std::string const& sourceDir,
|
||||||
cmExecutionStatus& status);
|
cmExecutionStatus& status) const;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -14,7 +14,6 @@
|
|||||||
#include "cmCTest.h"
|
#include "cmCTest.h"
|
||||||
#include "cmCTestGenericHandler.h"
|
#include "cmCTestGenericHandler.h"
|
||||||
#include "cmCTestSubmitHandler.h"
|
#include "cmCTestSubmitHandler.h"
|
||||||
#include "cmCommand.h"
|
|
||||||
#include "cmExecutionStatus.h"
|
#include "cmExecutionStatus.h"
|
||||||
#include "cmList.h"
|
#include "cmList.h"
|
||||||
#include "cmMakefile.h"
|
#include "cmMakefile.h"
|
||||||
@@ -23,13 +22,6 @@
|
|||||||
#include "cmSystemTools.h"
|
#include "cmSystemTools.h"
|
||||||
#include "cmValue.h"
|
#include "cmValue.h"
|
||||||
|
|
||||||
std::unique_ptr<cmCommand> cmCTestSubmitCommand::Clone()
|
|
||||||
{
|
|
||||||
auto ni = cm::make_unique<cmCTestSubmitCommand>();
|
|
||||||
ni->CTest = this->CTest;
|
|
||||||
return std::unique_ptr<cmCommand>(std::move(ni));
|
|
||||||
}
|
|
||||||
|
|
||||||
std::unique_ptr<cmCTestGenericHandler> cmCTestSubmitCommand::InitializeHandler(
|
std::unique_ptr<cmCTestGenericHandler> cmCTestSubmitCommand::InitializeHandler(
|
||||||
HandlerArguments& arguments, cmExecutionStatus& status) const
|
HandlerArguments& arguments, cmExecutionStatus& status) const
|
||||||
{
|
{
|
||||||
@@ -174,7 +166,7 @@ std::unique_ptr<cmCTestGenericHandler> cmCTestSubmitCommand::InitializeHandler(
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool cmCTestSubmitCommand::InitialPass(std::vector<std::string> const& args,
|
bool cmCTestSubmitCommand::InitialPass(std::vector<std::string> const& args,
|
||||||
cmExecutionStatus& status)
|
cmExecutionStatus& status) const
|
||||||
{
|
{
|
||||||
// Arguments used by both modes.
|
// Arguments used by both modes.
|
||||||
static auto const parserBase =
|
static auto const parserBase =
|
||||||
|
|||||||
@@ -15,7 +15,6 @@
|
|||||||
|
|
||||||
class cmExecutionStatus;
|
class cmExecutionStatus;
|
||||||
class cmCTestGenericHandler;
|
class cmCTestGenericHandler;
|
||||||
class cmCommand;
|
|
||||||
|
|
||||||
class cmCTestSubmitCommand : public cmCTestHandlerCommand
|
class cmCTestSubmitCommand : public cmCTestHandlerCommand
|
||||||
{
|
{
|
||||||
@@ -41,8 +40,6 @@ protected:
|
|||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::unique_ptr<cmCommand> Clone() override;
|
|
||||||
|
|
||||||
std::string GetName() const override { return "ctest_submit"; }
|
std::string GetName() const override { return "ctest_submit"; }
|
||||||
|
|
||||||
void CheckArguments(HandlerArguments& arguments,
|
void CheckArguments(HandlerArguments& arguments,
|
||||||
@@ -56,5 +53,5 @@ private:
|
|||||||
cmExecutionStatus& status) const override;
|
cmExecutionStatus& status) const override;
|
||||||
|
|
||||||
bool InitialPass(std::vector<std::string> const& args,
|
bool InitialPass(std::vector<std::string> const& args,
|
||||||
cmExecutionStatus& status) override;
|
cmExecutionStatus& status) const override;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -14,20 +14,12 @@
|
|||||||
#include "cmCTest.h"
|
#include "cmCTest.h"
|
||||||
#include "cmCTestGenericHandler.h"
|
#include "cmCTestGenericHandler.h"
|
||||||
#include "cmCTestTestHandler.h"
|
#include "cmCTestTestHandler.h"
|
||||||
#include "cmCommand.h"
|
|
||||||
#include "cmDuration.h"
|
#include "cmDuration.h"
|
||||||
#include "cmExecutionStatus.h"
|
#include "cmExecutionStatus.h"
|
||||||
#include "cmMakefile.h"
|
#include "cmMakefile.h"
|
||||||
#include "cmStringAlgorithms.h"
|
#include "cmStringAlgorithms.h"
|
||||||
#include "cmValue.h"
|
#include "cmValue.h"
|
||||||
|
|
||||||
std::unique_ptr<cmCommand> cmCTestTestCommand::Clone()
|
|
||||||
{
|
|
||||||
auto ni = cm::make_unique<cmCTestTestCommand>();
|
|
||||||
ni->CTest = this->CTest;
|
|
||||||
return std::unique_ptr<cmCommand>(std::move(ni));
|
|
||||||
}
|
|
||||||
|
|
||||||
std::unique_ptr<cmCTestGenericHandler> cmCTestTestCommand::InitializeHandler(
|
std::unique_ptr<cmCTestGenericHandler> cmCTestTestCommand::InitializeHandler(
|
||||||
HandlerArguments& arguments, cmExecutionStatus& status) const
|
HandlerArguments& arguments, cmExecutionStatus& status) const
|
||||||
{
|
{
|
||||||
@@ -154,7 +146,7 @@ cmCTestTestCommand::InitializeActualHandler(HandlerArguments&,
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool cmCTestTestCommand::InitialPass(std::vector<std::string> const& args,
|
bool cmCTestTestCommand::InitialPass(std::vector<std::string> const& args,
|
||||||
cmExecutionStatus& status)
|
cmExecutionStatus& status) const
|
||||||
{
|
{
|
||||||
static auto const parser = MakeTestParser<TestArguments>();
|
static auto const parser = MakeTestParser<TestArguments>();
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,6 @@
|
|||||||
class cmExecutionStatus;
|
class cmExecutionStatus;
|
||||||
class cmCTestGenericHandler;
|
class cmCTestGenericHandler;
|
||||||
class cmCTestTestHandler;
|
class cmCTestTestHandler;
|
||||||
class cmCommand;
|
|
||||||
|
|
||||||
class cmCTestTestCommand : public cmCTestHandlerCommand
|
class cmCTestTestCommand : public cmCTestHandlerCommand
|
||||||
{
|
{
|
||||||
@@ -79,8 +78,6 @@ protected:
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::unique_ptr<cmCommand> Clone() override;
|
|
||||||
|
|
||||||
std::string GetName() const override { return "ctest_test"; }
|
std::string GetName() const override { return "ctest_test"; }
|
||||||
|
|
||||||
virtual std::unique_ptr<cmCTestTestHandler> InitializeActualHandler(
|
virtual std::unique_ptr<cmCTestTestHandler> InitializeActualHandler(
|
||||||
@@ -90,5 +87,5 @@ private:
|
|||||||
HandlerArguments& arguments, cmExecutionStatus& status) const override;
|
HandlerArguments& arguments, cmExecutionStatus& status) const override;
|
||||||
|
|
||||||
bool InitialPass(std::vector<std::string> const& args,
|
bool InitialPass(std::vector<std::string> const& args,
|
||||||
cmExecutionStatus& status) override;
|
cmExecutionStatus& status) const override;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -9,18 +9,10 @@
|
|||||||
#include "cmCTest.h"
|
#include "cmCTest.h"
|
||||||
#include "cmCTestGenericHandler.h"
|
#include "cmCTestGenericHandler.h"
|
||||||
#include "cmCTestUpdateHandler.h"
|
#include "cmCTestUpdateHandler.h"
|
||||||
#include "cmCommand.h"
|
|
||||||
#include "cmExecutionStatus.h"
|
#include "cmExecutionStatus.h"
|
||||||
#include "cmMakefile.h"
|
#include "cmMakefile.h"
|
||||||
#include "cmSystemTools.h"
|
#include "cmSystemTools.h"
|
||||||
|
|
||||||
std::unique_ptr<cmCommand> cmCTestUpdateCommand::Clone()
|
|
||||||
{
|
|
||||||
auto ni = cm::make_unique<cmCTestUpdateCommand>();
|
|
||||||
ni->CTest = this->CTest;
|
|
||||||
return std::unique_ptr<cmCommand>(std::move(ni));
|
|
||||||
}
|
|
||||||
|
|
||||||
std::unique_ptr<cmCTestGenericHandler> cmCTestUpdateCommand::InitializeHandler(
|
std::unique_ptr<cmCTestGenericHandler> cmCTestUpdateCommand::InitializeHandler(
|
||||||
HandlerArguments& args, cmExecutionStatus& status) const
|
HandlerArguments& args, cmExecutionStatus& status) const
|
||||||
{
|
{
|
||||||
@@ -93,7 +85,7 @@ std::unique_ptr<cmCTestGenericHandler> cmCTestUpdateCommand::InitializeHandler(
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool cmCTestUpdateCommand::InitialPass(std::vector<std::string> const& args,
|
bool cmCTestUpdateCommand::InitialPass(std::vector<std::string> const& args,
|
||||||
cmExecutionStatus& status)
|
cmExecutionStatus& status) const
|
||||||
{
|
{
|
||||||
static auto const parser = MakeHandlerParser<HandlerArguments>();
|
static auto const parser = MakeHandlerParser<HandlerArguments>();
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,6 @@
|
|||||||
|
|
||||||
class cmExecutionStatus;
|
class cmExecutionStatus;
|
||||||
class cmCTestGenericHandler;
|
class cmCTestGenericHandler;
|
||||||
class cmCommand;
|
|
||||||
|
|
||||||
class cmCTestUpdateCommand : public cmCTestHandlerCommand
|
class cmCTestUpdateCommand : public cmCTestHandlerCommand
|
||||||
{
|
{
|
||||||
@@ -20,13 +19,11 @@ public:
|
|||||||
using cmCTestHandlerCommand::cmCTestHandlerCommand;
|
using cmCTestHandlerCommand::cmCTestHandlerCommand;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::unique_ptr<cmCommand> Clone() override;
|
|
||||||
|
|
||||||
std::string GetName() const override { return "ctest_update"; }
|
std::string GetName() const override { return "ctest_update"; }
|
||||||
|
|
||||||
std::unique_ptr<cmCTestGenericHandler> InitializeHandler(
|
std::unique_ptr<cmCTestGenericHandler> InitializeHandler(
|
||||||
HandlerArguments& args, cmExecutionStatus& status) const override;
|
HandlerArguments& args, cmExecutionStatus& status) const override;
|
||||||
|
|
||||||
bool InitialPass(std::vector<std::string> const& args,
|
bool InitialPass(std::vector<std::string> const& args,
|
||||||
cmExecutionStatus& status) override;
|
cmExecutionStatus& status) const override;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -13,19 +13,11 @@
|
|||||||
#include "cmArgumentParser.h"
|
#include "cmArgumentParser.h"
|
||||||
#include "cmCTestGenericHandler.h"
|
#include "cmCTestGenericHandler.h"
|
||||||
#include "cmCTestUploadHandler.h"
|
#include "cmCTestUploadHandler.h"
|
||||||
#include "cmCommand.h"
|
|
||||||
#include "cmExecutionStatus.h"
|
#include "cmExecutionStatus.h"
|
||||||
#include "cmMakefile.h"
|
#include "cmMakefile.h"
|
||||||
#include "cmMessageType.h"
|
#include "cmMessageType.h"
|
||||||
#include "cmSystemTools.h"
|
#include "cmSystemTools.h"
|
||||||
|
|
||||||
std::unique_ptr<cmCommand> cmCTestUploadCommand::Clone()
|
|
||||||
{
|
|
||||||
auto ni = cm::make_unique<cmCTestUploadCommand>();
|
|
||||||
ni->CTest = this->CTest;
|
|
||||||
return std::unique_ptr<cmCommand>(std::move(ni));
|
|
||||||
}
|
|
||||||
|
|
||||||
void cmCTestUploadCommand::CheckArguments(HandlerArguments& arguments,
|
void cmCTestUploadCommand::CheckArguments(HandlerArguments& arguments,
|
||||||
cmExecutionStatus& status) const
|
cmExecutionStatus& status) const
|
||||||
{
|
{
|
||||||
@@ -55,7 +47,7 @@ std::unique_ptr<cmCTestGenericHandler> cmCTestUploadCommand::InitializeHandler(
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool cmCTestUploadCommand::InitialPass(std::vector<std::string> const& args,
|
bool cmCTestUploadCommand::InitialPass(std::vector<std::string> const& args,
|
||||||
cmExecutionStatus& status)
|
cmExecutionStatus& status) const
|
||||||
{
|
{
|
||||||
static auto const parser =
|
static auto const parser =
|
||||||
cmArgumentParser<UploadArguments>{ MakeHandlerParser<UploadArguments>() }
|
cmArgumentParser<UploadArguments>{ MakeHandlerParser<UploadArguments>() }
|
||||||
|
|||||||
@@ -13,7 +13,6 @@
|
|||||||
|
|
||||||
class cmExecutionStatus;
|
class cmExecutionStatus;
|
||||||
class cmCTestGenericHandler;
|
class cmCTestGenericHandler;
|
||||||
class cmCommand;
|
|
||||||
|
|
||||||
class cmCTestUploadCommand : public cmCTestHandlerCommand
|
class cmCTestUploadCommand : public cmCTestHandlerCommand
|
||||||
{
|
{
|
||||||
@@ -27,8 +26,6 @@ protected:
|
|||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::unique_ptr<cmCommand> Clone() override;
|
|
||||||
|
|
||||||
std::string GetName() const override { return "ctest_upload"; }
|
std::string GetName() const override { return "ctest_upload"; }
|
||||||
|
|
||||||
void CheckArguments(HandlerArguments& arguments,
|
void CheckArguments(HandlerArguments& arguments,
|
||||||
@@ -38,5 +35,5 @@ private:
|
|||||||
HandlerArguments& arguments, cmExecutionStatus& status) const override;
|
HandlerArguments& arguments, cmExecutionStatus& status) const override;
|
||||||
|
|
||||||
bool InitialPass(std::vector<std::string> const& args,
|
bool InitialPass(std::vector<std::string> const& args,
|
||||||
cmExecutionStatus& status) override;
|
cmExecutionStatus& status) const override;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user