Browse Source

cmCommand: Remove

Finally. All commands are immutable.
Daniel Pfeifer 11 months ago
parent
commit
1b8f9274b2
6 changed files with 0 additions and 169 deletions
  1. 0 2
      Source/CMakeLists.txt
  2. 0 59
      Source/cmCommand.cxx
  3. 0 97
      Source/cmCommand.h
  4. 0 7
      Source/cmState.cxx
  5. 0 3
      Source/cmState.h
  6. 0 1
      bootstrap

+ 0 - 2
Source/CMakeLists.txt

@@ -510,8 +510,6 @@ add_library(
   cmake.cxx
   cmake.h
 
-  cmCommand.cxx
-  cmCommand.h
   cmCommands.cxx
   cmCommands.h
   cmAddCompileDefinitionsCommand.cxx

+ 0 - 59
Source/cmCommand.cxx

@@ -1,59 +0,0 @@
-/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-   file Copyright.txt or https://cmake.org/licensing for details.  */
-#include "cmCommand.h"
-
-#include <utility>
-
-#include "cmExecutionStatus.h"
-#include "cmMakefile.h"
-
-struct cmListFileArgument;
-
-void cmCommand::SetExecutionStatus(cmExecutionStatus* status)
-{
-  this->Status = status;
-  this->Makefile = &status->GetMakefile();
-}
-
-bool cmCommand::InvokeInitialPass(const std::vector<cmListFileArgument>& args,
-                                  cmExecutionStatus& status)
-{
-  std::vector<std::string> expandedArguments;
-  if (!this->Makefile->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);
-}
-
-void cmCommand::SetError(const std::string& e)
-{
-  this->Status->SetError(e);
-}
-
-cmLegacyCommandWrapper::cmLegacyCommandWrapper(std::unique_ptr<cmCommand> cmd)
-  : Command(std::move(cmd))
-{
-}
-
-cmLegacyCommandWrapper::cmLegacyCommandWrapper(
-  cmLegacyCommandWrapper const& other)
-  : Command(other.Command->Clone())
-{
-}
-
-cmLegacyCommandWrapper& cmLegacyCommandWrapper::operator=(
-  cmLegacyCommandWrapper const& other)
-{
-  this->Command = other.Command->Clone();
-  return *this;
-}
-
-bool cmLegacyCommandWrapper::operator()(
-  std::vector<cmListFileArgument> const& args, cmExecutionStatus& status) const
-{
-  auto cmd = this->Command->Clone();
-  cmd->SetExecutionStatus(&status);
-  return cmd->InvokeInitialPass(args, status);
-}

+ 0 - 97
Source/cmCommand.h

@@ -1,97 +0,0 @@
-/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-   file Copyright.txt or https://cmake.org/licensing for details.  */
-#pragma once
-
-#include "cmConfigure.h" // IWYU pragma: keep
-
-#include <memory>
-#include <string>
-#include <vector>
-
-class cmExecutionStatus;
-class cmMakefile;
-struct cmListFileArgument;
-
-/** \class cmCommand
- * \brief Superclass for all commands in CMake.
- *
- * cmCommand is the base class for all commands in CMake. A command
- * manifests as an entry in CMakeLists.txt and produces one or
- * more makefile rules. Commands are associated with a particular
- * makefile. This base class cmCommand defines the API for commands
- * to support such features as enable/disable, inheritance,
- * documentation, and construction.
- */
-class cmCommand
-{
-public:
-  /**
-   * Construct the command. By default it has no makefile.
-   */
-  cmCommand() = default;
-
-  /**
-   * Need virtual destructor to destroy real command type.
-   */
-  virtual ~cmCommand() = default;
-
-  cmCommand(cmCommand const&) = delete;
-  cmCommand& operator=(cmCommand const&) = delete;
-
-  /**
-   * Specify the makefile.
-   */
-  cmMakefile* GetMakefile() { return this->Makefile; }
-
-  void SetExecutionStatus(cmExecutionStatus* s);
-  cmExecutionStatus* GetExecutionStatus() { return this->Status; }
-
-  /**
-   * This is called by the cmMakefile when the command is first
-   * encountered in the CMakeLists.txt file.  It expands the command's
-   * arguments and then invokes the InitialPass.
-   */
-  bool InvokeInitialPass(const std::vector<cmListFileArgument>& args,
-                         cmExecutionStatus& status);
-
-  /**
-   * This is called when the command is first encountered in
-   * the CMakeLists.txt file.
-   */
-  virtual bool InitialPass(std::vector<std::string> const& args,
-                           cmExecutionStatus&) = 0;
-
-  /**
-   * This is a virtual constructor for the command.
-   */
-  virtual std::unique_ptr<cmCommand> Clone() = 0;
-
-  /**
-   * Set the error message
-   */
-  void SetError(const std::string& e);
-
-protected:
-  cmMakefile* Makefile = nullptr;
-
-private:
-  cmExecutionStatus* Status = nullptr;
-};
-
-class cmLegacyCommandWrapper
-{
-public:
-  explicit cmLegacyCommandWrapper(std::unique_ptr<cmCommand> cmd);
-
-  cmLegacyCommandWrapper(cmLegacyCommandWrapper const& other);
-  cmLegacyCommandWrapper& operator=(cmLegacyCommandWrapper const& other);
-
-  cmLegacyCommandWrapper(cmLegacyCommandWrapper&&) = default;
-  cmLegacyCommandWrapper& operator=(cmLegacyCommandWrapper&&) = default;
-
-  bool operator()(std::vector<cmListFileArgument> const& args,
-                  cmExecutionStatus& status) const;
-
-private:
-  std::unique_ptr<cmCommand> Command;
-};

+ 0 - 7
Source/cmState.cxx

@@ -13,7 +13,6 @@
 #include "cmsys/RegularExpression.hxx"
 
 #include "cmCacheManager.h"
-#include "cmCommand.h"
 #include "cmDefinitions.h"
 #include "cmExecutionStatus.h"
 #include "cmGlobCacheEntry.h"
@@ -397,12 +396,6 @@ void cmState::SetIsGeneratorMultiConfig(bool b)
   this->IsGeneratorMultiConfig = b;
 }
 
-void cmState::AddBuiltinCommand(std::string const& name,
-                                std::unique_ptr<cmCommand> command)
-{
-  this->AddBuiltinCommand(name, cmLegacyCommandWrapper(std::move(command)));
-}
-
 void cmState::AddBuiltinCommand(std::string const& name, Command command)
 {
   assert(name == cmSystemTools::LowerCase(name));

+ 0 - 3
Source/cmState.h

@@ -27,7 +27,6 @@
 #include "cmValue.h"
 
 class cmCacheManager;
-class cmCommand;
 class cmGlobVerificationManager;
 class cmMakefile;
 class cmStateSnapshot;
@@ -177,8 +176,6 @@ public:
   // Returns a command from its name, or nullptr
   Command GetCommandByExactName(std::string const& name) const;
 
-  void AddBuiltinCommand(std::string const& name,
-                         std::unique_ptr<cmCommand> command);
   void AddBuiltinCommand(std::string const& name, Command command);
   void AddBuiltinCommand(std::string const& name, BuiltinCommand command);
   void AddFlowControlCommand(std::string const& name, Command command);

+ 0 - 1
bootstrap

@@ -315,7 +315,6 @@ CMAKE_CXX_SOURCES="\
   cmCMakePolicyCommand \
   cmCPackPropertiesGenerator \
   cmCacheManager \
-  cmCommand \
   cmCommandArgumentParserHelper \
   cmCommands \
   cmCommonTargetGenerator \