cmcmd.h 1.6 KB

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