blob: f1dc3d2379c5cc85198e2894c68a097b3afe0669 [file] [log] [blame] [edit]
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file LICENSE.rst or https://cmake.org/licensing for details. */
#pragma once
#include "cmConfigure.h" // IWYU pragma: keep
#include <string>
#include <vector>
#include "cmDuration.h"
class cmake;
class cmCTest;
/** \class cmCTestBuildAndTest
* \brief A class that handles ctest -S invocations
*
*/
class cmCTestBuildAndTest
{
public:
/*
* The main entry point for this class
*/
int Run();
cmCTestBuildAndTest(cmCTest* ctest);
private:
cmCTest* CTest;
bool RunCMake(cmake* cm);
bool RunTest(std::vector<std::string> const& args, int* retVal,
cmDuration timeout);
std::string BuildGenerator;
std::string BuildGeneratorPlatform;
std::string BuildGeneratorToolset;
std::vector<std::string> BuildOptions;
bool BuildTwoConfig = false;
std::string BuildMakeProgram;
std::string ConfigSample;
std::string SourceDir;
std::string BinaryDir;
std::string BuildProject;
std::string TestCommand;
bool BuildNoClean = false;
std::string BuildRunDir;
std::string ExecutableDirectory;
std::vector<std::string> TestCommandArgs;
std::vector<std::string> BuildTargets;
bool BuildNoCMake = false;
cmDuration Timeout = cmDuration::zero();
friend class cmCTest;
};