cmCTestBuildAndTest.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. #include "cmConfigure.h" // IWYU pragma: keep
  5. #include <string>
  6. #include <vector>
  7. #include "cmDuration.h"
  8. class cmake;
  9. class cmCTest;
  10. /** \class cmCTestBuildAndTest
  11. * \brief A class that handles ctest -S invocations
  12. *
  13. */
  14. class cmCTestBuildAndTest
  15. {
  16. public:
  17. /*
  18. * The main entry point for this class
  19. */
  20. int Run();
  21. cmCTestBuildAndTest(cmCTest* ctest);
  22. private:
  23. cmCTest* CTest;
  24. int RunCMake(cmake* cm);
  25. bool RunTest(std::vector<std::string> const& args, int* retVal,
  26. cmDuration timeout);
  27. std::string BuildGenerator;
  28. std::string BuildGeneratorPlatform;
  29. std::string BuildGeneratorToolset;
  30. std::vector<std::string> BuildOptions;
  31. bool BuildTwoConfig = false;
  32. std::string BuildMakeProgram;
  33. std::string ConfigSample;
  34. std::string SourceDir;
  35. std::string BinaryDir;
  36. std::string BuildProject;
  37. std::string TestCommand;
  38. bool BuildNoClean = false;
  39. std::string BuildRunDir;
  40. std::string ExecutableDirectory;
  41. std::vector<std::string> TestCommandArgs;
  42. std::vector<std::string> BuildTargets;
  43. bool BuildNoCMake = false;
  44. cmDuration Timeout = cmDuration::zero();
  45. friend class cmCTest;
  46. };