Browse Source

cmInstallCommand: Port away from cmCommand

Regina Pfeifer 6 years ago
parent
commit
920f0dd83a
3 changed files with 222 additions and 277 deletions
  1. 1 1
      Source/cmCommands.cxx
  2. 219 212
      Source/cmInstallCommand.cxx
  3. 2 64
      Source/cmInstallCommand.h

+ 1 - 1
Source/cmCommands.cxx

@@ -234,7 +234,7 @@ void GetProjectCommands(cmState* state)
   state->AddBuiltinCommand("include_directories", cmIncludeDirectoryCommand);
   state->AddBuiltinCommand("include_regular_expression",
                            cmIncludeRegularExpressionCommand);
-  state->AddBuiltinCommand("install", cm::make_unique<cmInstallCommand>());
+  state->AddBuiltinCommand("install", cmInstallCommand);
   state->AddBuiltinCommand("install_files", cmInstallFilesCommand);
   state->AddBuiltinCommand("install_targets", cmInstallTargetsCommand);
   state->AddBuiltinCommand("link_directories", cmLinkDirectoriesCommand);

File diff suppressed because it is too large
+ 219 - 212
Source/cmInstallCommand.cxx


+ 2 - 64
Source/cmInstallCommand.h

@@ -8,71 +8,9 @@
 #include <string>
 #include <vector>
 
-#include <cm/memory>
-
-#include "cmCommand.h"
-
 class cmExecutionStatus;
-class cmInstallCommandArguments;
-
-/** \class cmInstallCommand
- * \brief Specifies where to install some files
- *
- * cmInstallCommand is a general-purpose interface command for
- * specifying install rules.
- */
-class cmInstallCommand : public cmCommand
-{
-public:
-  /**
-   * This is a virtual constructor for the command.
-   */
-  std::unique_ptr<cmCommand> Clone() override
-  {
-    return cm::make_unique<cmInstallCommand>();
-  }
-
-  /**
-   * This is called when the command is first encountered in
-   * the CMakeLists.txt file.
-   */
-  bool InitialPass(std::vector<std::string> const& args,
-                   cmExecutionStatus& status) override;
-
-private:
-  bool HandleScriptMode(std::vector<std::string> const& args);
-  bool HandleTargetsMode(std::vector<std::string> const& args);
-  bool HandleFilesMode(std::vector<std::string> const& args);
-  bool HandleDirectoryMode(std::vector<std::string> const& args);
-  bool HandleExportMode(std::vector<std::string> const& args);
-  bool HandleExportAndroidMKMode(std::vector<std::string> const& args);
-  bool MakeFilesFullPath(const char* modeName,
-                         const std::vector<std::string>& relFiles,
-                         std::vector<std::string>& absFiles);
-  bool CheckCMP0006(bool& failure);
-
-  std::string GetDestination(const cmInstallCommandArguments* args,
-                             const std::string& varName,
-                             const std::string& guess);
-  std::string GetRuntimeDestination(const cmInstallCommandArguments* args);
-  std::string GetSbinDestination(const cmInstallCommandArguments* args);
-  std::string GetArchiveDestination(const cmInstallCommandArguments* args);
-  std::string GetLibraryDestination(const cmInstallCommandArguments* args);
-  std::string GetIncludeDestination(const cmInstallCommandArguments* args);
-  std::string GetSysconfDestination(const cmInstallCommandArguments* args);
-  std::string GetSharedStateDestination(const cmInstallCommandArguments* args);
-  std::string GetLocalStateDestination(const cmInstallCommandArguments* args);
-  std::string GetRunStateDestination(const cmInstallCommandArguments* args);
-  std::string GetDataRootDestination(const cmInstallCommandArguments* args);
-  std::string GetDataDestination(const cmInstallCommandArguments* args);
-  std::string GetInfoDestination(const cmInstallCommandArguments* args);
-  std::string GetLocaleDestination(const cmInstallCommandArguments* args);
-  std::string GetManDestination(const cmInstallCommandArguments* args);
-  std::string GetDocDestination(const cmInstallCommandArguments* args);
-  std::string GetDestinationForType(const cmInstallCommandArguments* args,
-                                    const std::string& type);
 
-  std::string DefaultComponentName;
-};
+bool cmInstallCommand(std::vector<std::string> const& args,
+                      cmExecutionStatus& status);
 
 #endif

Some files were not shown because too many files changed in this diff