From 2b58ae75773ff826bb1c3e6c5a3bad31c5292f00 Mon Sep 17 00:00:00 2001 From: Gabor Bencze Date: Sun, 4 Aug 2019 18:31:29 +0200 Subject: cmCommand refactor: cmMarkAsAdvancedCommand --- Source/cmCommands.cxx | 3 +-- Source/cmMarkAsAdvancedCommand.cxx | 13 ++++++------- Source/cmMarkAsAdvancedCommand.h | 26 +++----------------------- 3 files changed, 10 insertions(+), 32 deletions(-) diff --git a/Source/cmCommands.cxx b/Source/cmCommands.cxx index e50f1a0..6dd3e92 100644 --- a/Source/cmCommands.cxx +++ b/Source/cmCommands.cxx @@ -147,8 +147,7 @@ void GetScriptingCommands(cmState* state) state->AddBuiltinCommand("list", cmListCommand); state->AddBuiltinCommand("macro", cmMacroCommand); state->AddBuiltinCommand("make_directory", cmMakeDirectoryCommand); - state->AddBuiltinCommand("mark_as_advanced", - cm::make_unique()); + state->AddBuiltinCommand("mark_as_advanced", cmMarkAsAdvancedCommand); state->AddBuiltinCommand("math", cm::make_unique()); state->AddBuiltinCommand("message", cm::make_unique()); state->AddBuiltinCommand("option", cm::make_unique()); diff --git a/Source/cmMarkAsAdvancedCommand.cxx b/Source/cmMarkAsAdvancedCommand.cxx index 45c59b9..ca46e14 100644 --- a/Source/cmMarkAsAdvancedCommand.cxx +++ b/Source/cmMarkAsAdvancedCommand.cxx @@ -2,20 +2,19 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmMarkAsAdvancedCommand.h" +#include "cmExecutionStatus.h" #include "cmMakefile.h" #include "cmState.h" #include "cmStateTypes.h" #include "cmSystemTools.h" #include "cmake.h" -class cmExecutionStatus; - // cmMarkAsAdvancedCommand -bool cmMarkAsAdvancedCommand::InitialPass(std::vector const& args, - cmExecutionStatus&) +bool cmMarkAsAdvancedCommand(std::vector const& args, + cmExecutionStatus& status) { if (args.empty()) { - this->SetError("called with incorrect number of arguments"); + status.SetError("called with incorrect number of arguments"); return false; } @@ -31,9 +30,9 @@ bool cmMarkAsAdvancedCommand::InitialPass(std::vector const& args, } for (; i < args.size(); ++i) { std::string const& variable = args[i]; - cmState* state = this->Makefile->GetState(); + cmState* state = status.GetMakefile().GetState(); if (!state->GetCacheEntryValue(variable)) { - this->Makefile->GetCMakeInstance()->AddCacheEntry( + status.GetMakefile().GetCMakeInstance()->AddCacheEntry( variable, nullptr, nullptr, cmStateEnums::UNINITIALIZED); overwrite = true; } diff --git a/Source/cmMarkAsAdvancedCommand.h b/Source/cmMarkAsAdvancedCommand.h index e367c46..de7bf08 100644 --- a/Source/cmMarkAsAdvancedCommand.h +++ b/Source/cmMarkAsAdvancedCommand.h @@ -8,34 +8,14 @@ #include #include -#include "cm_memory.hxx" - -#include "cmCommand.h" - class cmExecutionStatus; -/** \class cmMarkAsAdvancedCommand +/** * \brief mark_as_advanced command * * cmMarkAsAdvancedCommand implements the mark_as_advanced CMake command */ -class cmMarkAsAdvancedCommand : 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 cmMarkAsAdvancedCommand(std::vector const& args, + cmExecutionStatus& status); #endif -- cgit v0.12