CTest: Add options to set generator platform
The ctest_configure command already reads the CTEST_CMAKE_GENERATOR variable to get the value for the cmake -G option. Read new variable CTEST_CMAKE_GENERATOR_PLATFORM to pass on as CMAKE_GENERATOR_PLATFORM. The "ctest --build-and-test" mode already has "--build-generator" to specify the -G option to CMake. Add a "--build-generator-platform" option to specify a value to pass on as CMAKE_GENERATOR_PLATFORM.
This commit is contained in:
parent
b97736a23d
commit
8d33209170
|
@ -258,6 +258,9 @@ Options
|
|||
``--build-generator``
|
||||
Specify the generator to use.
|
||||
|
||||
``--build-generator-platform``
|
||||
Specify the generator-specific platform.
|
||||
|
||||
``--build-generator-toolset``
|
||||
Specify the generator-specific toolset.
|
||||
|
||||
|
|
|
@ -68,6 +68,12 @@ int cmCTestBuildAndTestHandler::RunCMake(std::string* outstring,
|
|||
generator += this->BuildGenerator;
|
||||
args.push_back(generator);
|
||||
}
|
||||
if(!this->BuildGeneratorPlatform.empty())
|
||||
{
|
||||
std::string platform = "-DCMAKE_GENERATOR_PLATFORM=";
|
||||
platform += this->BuildGeneratorPlatform;
|
||||
args.push_back(platform);
|
||||
}
|
||||
if(this->BuildGeneratorToolset.size())
|
||||
{
|
||||
std::string toolset = "-T";
|
||||
|
@ -246,6 +252,7 @@ int cmCTestBuildAndTestHandler::RunCMakeAndTest(std::string* outstring)
|
|||
// Make the generator available for the Build call below.
|
||||
cm.SetGlobalGenerator(cm.CreateGlobalGenerator(
|
||||
this->BuildGenerator));
|
||||
cm.SetGeneratorPlatform(this->BuildGeneratorPlatform);
|
||||
cm.SetGeneratorToolset(this->BuildGeneratorToolset);
|
||||
|
||||
// Load the cache to make CMAKE_MAKE_PROGRAM available.
|
||||
|
@ -490,6 +497,12 @@ int cmCTestBuildAndTestHandler::ProcessCommandLineArguments(
|
|||
idx++;
|
||||
this->BuildGenerator = allArgs[idx];
|
||||
}
|
||||
if(currentArg == "--build-generator-platform" &&
|
||||
idx < allArgs.size() - 1)
|
||||
{
|
||||
idx++;
|
||||
this->BuildGeneratorPlatform = allArgs[idx];
|
||||
}
|
||||
if(currentArg == "--build-generator-toolset" &&
|
||||
idx < allArgs.size() - 1)
|
||||
{
|
||||
|
|
|
@ -57,6 +57,7 @@ protected:
|
|||
std::string Output;
|
||||
|
||||
std::string BuildGenerator;
|
||||
std::string BuildGeneratorPlatform;
|
||||
std::string BuildGeneratorToolset;
|
||||
std::vector<std::string> BuildOptions;
|
||||
bool BuildTwoConfig;
|
||||
|
|
|
@ -118,6 +118,15 @@ cmCTestGenericHandler* cmCTestConfigureCommand::InitializeHandler()
|
|||
cmakeConfigureCommand += cmakeGeneratorName;
|
||||
cmakeConfigureCommand += "\"";
|
||||
|
||||
const char* cmakeGeneratorPlatform =
|
||||
this->Makefile->GetDefinition("CTEST_CMAKE_GENERATOR_PLATFORM");
|
||||
if(cmakeGeneratorPlatform && *cmakeGeneratorPlatform)
|
||||
{
|
||||
cmakeConfigureCommand += " \"-DCMAKE_GENERATOR_PLATFORM=";
|
||||
cmakeConfigureCommand += cmakeGeneratorPlatform;
|
||||
cmakeConfigureCommand += "\"";
|
||||
}
|
||||
|
||||
const char* cmakeGeneratorToolset =
|
||||
this->Makefile->GetDefinition("CTEST_CMAKE_GENERATOR_TOOLSET");
|
||||
if(cmakeGeneratorToolset && *cmakeGeneratorToolset)
|
||||
|
|
|
@ -86,6 +86,7 @@ static const char * cmDocumentationOptions[][2] =
|
|||
{"--build-two-config", "Run CMake twice"},
|
||||
{"--build-exe-dir", "Specify the directory for the executable."},
|
||||
{"--build-generator", "Specify the generator to use."},
|
||||
{"--build-generator-platform", "Specify the generator-specific platform."},
|
||||
{"--build-generator-toolset", "Specify the generator-specific toolset."},
|
||||
{"--build-project", "Specify the name of the project to build."},
|
||||
{"--build-makeprogram", "Specify the make program to use."},
|
||||
|
|
Loading…
Reference in New Issue