resolve cyclic dependency with zstd
[platform/upstream/cmake.git] / Source / cmcmd.h
1 /* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
2    file Copyright.txt or https://cmake.org/licensing for details.  */
3 #pragma once
4
5 #include "cmConfigure.h" // IWYU pragma: keep
6
7 #include <memory>
8 #include <string>
9 #include <vector>
10
11 #include "cmsys/Status.hxx"
12
13 #include "cmCryptoHash.h"
14
15 class cmConsoleBuf;
16
17 class cmcmd
18 {
19 public:
20   /**
21    * Execute commands during the build process. Supports options such
22    * as echo, remove file etc.
23    */
24   static int ExecuteCMakeCommand(std::vector<std::string> const&,
25                                  std::unique_ptr<cmConsoleBuf> consoleBuf);
26
27 protected:
28   static int HandleCoCompileCommands(std::vector<std::string> const& args);
29   static int HashSumFile(std::vector<std::string> const& args,
30                          cmCryptoHash::Algo algo);
31   static int SymlinkLibrary(std::vector<std::string> const& args);
32   static int SymlinkExecutable(std::vector<std::string> const& args);
33   static cmsys::Status SymlinkInternal(std::string const& file,
34                                        std::string const& link);
35   static int ExecuteEchoColor(std::vector<std::string> const& args);
36   static int ExecuteLinkScript(std::vector<std::string> const& args);
37   static int WindowsCEEnvironment(const char* version,
38                                   const std::string& name);
39   static int RunPreprocessor(const std::vector<std::string>& command,
40                              const std::string& intermediate_file);
41   static int RunLLVMRC(std::vector<std::string> const& args);
42   static int VisualStudioLink(std::vector<std::string> const& args, int type);
43 };