cmCTestBuildCommand: Avoid requiring complete cmGlobalGenerator type publicly
diff --git a/Source/CTest/cmCTestBuildCommand.cxx b/Source/CTest/cmCTestBuildCommand.cxx index 50d69df..d8ef195 100644 --- a/Source/CTest/cmCTestBuildCommand.cxx +++ b/Source/CTest/cmCTestBuildCommand.cxx
@@ -3,11 +3,13 @@ #include "cmCTestBuildCommand.h" #include <sstream> +#include <utility> #include <cmext/string_view> #include "cmCTest.h" #include "cmCTestBuildHandler.h" +#include "cmCommand.h" #include "cmGlobalGenerator.h" #include "cmMakefile.h" #include "cmMessageType.h" @@ -18,6 +20,14 @@ class cmExecutionStatus; +std::unique_ptr<cmCommand> cmCTestBuildCommand::Clone() +{ + auto ni = cm::make_unique<cmCTestBuildCommand>(); + ni->CTest = this->CTest; + ni->CTestScriptHandler = this->CTestScriptHandler; + return std::unique_ptr<cmCommand>(std::move(ni)); +} + void cmCTestBuildCommand::BindArguments() { this->cmCTestHandlerCommand::BindArguments();
diff --git a/Source/CTest/cmCTestBuildCommand.h b/Source/CTest/cmCTestBuildCommand.h index 1254dad..3b7f4f9 100644 --- a/Source/CTest/cmCTestBuildCommand.h +++ b/Source/CTest/cmCTestBuildCommand.h
@@ -5,14 +5,13 @@ #include "cmConfigure.h" // IWYU pragma: keep #include <string> -#include <utility> #include <vector> #include <cm/memory> #include "cmCTestHandlerCommand.h" -#include "cmCommand.h" +class cmCommand; class cmCTestBuildHandler; class cmCTestGenericHandler; class cmExecutionStatus; @@ -31,13 +30,7 @@ /** * This is a virtual constructor for the command. */ - std::unique_ptr<cmCommand> Clone() override - { - auto ni = cm::make_unique<cmCTestBuildCommand>(); - ni->CTest = this->CTest; - ni->CTestScriptHandler = this->CTestScriptHandler; - return std::unique_ptr<cmCommand>(std::move(ni)); - } + std::unique_ptr<cmCommand> Clone() override; /** * The name of the command as specified in CMakeList.txt.