From 07ea93de5447e0bc20b4632fa61d965c02876cc8 Mon Sep 17 00:00:00 2001 From: Gabor Bencze Date: Fri, 9 Aug 2019 11:56:34 +0200 Subject: cmCommand refactor: cmWriteFileCommand --- Source/cmCommands.cxx | 3 +-- Source/cmWriteFileCommand.cxx | 15 +++++++-------- Source/cmWriteFileCommand.h | 26 +++----------------------- 3 files changed, 11 insertions(+), 33 deletions(-) diff --git a/Source/cmCommands.cxx b/Source/cmCommands.cxx index 0fa2529..6f6ca50 100644 --- a/Source/cmCommands.cxx +++ b/Source/cmCommands.cxx @@ -204,8 +204,7 @@ void GetScriptingCommands(cmState* state) cmCMakeHostSystemInformationCommand); state->AddBuiltinCommand("remove", cmRemoveCommand); state->AddBuiltinCommand("variable_watch", cmVariableWatchCommand); - state->AddBuiltinCommand("write_file", - cm::make_unique()); + state->AddBuiltinCommand("write_file", cmWriteFileCommand); state->AddDisallowedCommand( "build_name", cm::make_unique(), cmPolicies::CMP0036, diff --git a/Source/cmWriteFileCommand.cxx b/Source/cmWriteFileCommand.cxx index 49dbf1a..63af65d 100644 --- a/Source/cmWriteFileCommand.cxx +++ b/Source/cmWriteFileCommand.cxx @@ -4,18 +4,17 @@ #include "cmsys/FStream.hxx" +#include "cmExecutionStatus.h" #include "cmMakefile.h" #include "cmSystemTools.h" #include "cm_sys_stat.h" -class cmExecutionStatus; - // cmLibraryCommand -bool cmWriteFileCommand::InitialPass(std::vector const& args, - cmExecutionStatus&) +bool cmWriteFileCommand(std::vector const& args, + cmExecutionStatus& status) { if (args.size() < 2) { - this->SetError("called with incorrect number of arguments"); + status.SetError("called with incorrect number of arguments"); return false; } std::string message; @@ -33,10 +32,10 @@ bool cmWriteFileCommand::InitialPass(std::vector const& args, } } - if (!this->Makefile->CanIWriteThisFile(fileName)) { + if (!status.GetMakefile().CanIWriteThisFile(fileName)) { std::string e = "attempted to write a file: " + fileName + " into a source directory."; - this->SetError(e); + status.SetError(e); cmSystemTools::SetFatalErrorOccured(); return false; } @@ -68,7 +67,7 @@ bool cmWriteFileCommand::InitialPass(std::vector const& args, std::string error = "Internal CMake error when trying to open file: "; error += fileName; error += " for writing."; - this->SetError(error); + status.SetError(error); return false; } file << message << std::endl; diff --git a/Source/cmWriteFileCommand.h b/Source/cmWriteFileCommand.h index 3961898..3e0e043 100644 --- a/Source/cmWriteFileCommand.h +++ b/Source/cmWriteFileCommand.h @@ -8,33 +8,13 @@ #include #include -#include "cm_memory.hxx" - -#include "cmCommand.h" - class cmExecutionStatus; -/** \class cmWriteFileCommand +/** * \brief Writes a message to a file * */ -class cmWriteFileCommand : public cmCommand -{ -public: - /** - * This is a virtual constructor for the command. - */ - std::unique_ptr Clone() override - { - return cm::make_unique(); - } - - /** - * This is called when the command is first encountered in - * the CMakeLists.txt file. - */ - bool InitialPass(std::vector const& args, - cmExecutionStatus& status) override; -}; +bool cmWriteFileCommand(std::vector const& args, + cmExecutionStatus& status); #endif -- cgit v0.12