diff options
author | Brad King <brad.king@kitware.com> | 2018-09-25 17:20:30 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2018-09-25 17:27:11 (GMT) |
commit | 6597428c364c0a495bba88a6154ac0ed7f3cd461 (patch) | |
tree | 9c470b9f32ed9795d991a40b8e46dfbdb21fecbe /Source | |
parent | d8294fefe8063cc2e0a0cfecf7fd8fef619cf0da (diff) | |
download | CMake-6597428c364c0a495bba88a6154ac0ed7f3cd461.zip CMake-6597428c364c0a495bba88a6154ac0ed7f3cd461.tar.gz CMake-6597428c364c0a495bba88a6154ac0ed7f3cd461.tar.bz2 |
ctest: Fix generator platform under --build-nocmake
When constructing a global generator instance in `--build-and-test` mode
we need to set the platform passed by `--build-generator-platform`
directly on the generator. The old code that set it on the `cmake`
class instance did nothing because that only affects cache
initialization, which is not done by `--build-nocmake`.
Diffstat (limited to 'Source')
-rw-r--r-- | Source/CTest/cmCTestBuildAndTestHandler.cxx | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/Source/CTest/cmCTestBuildAndTestHandler.cxx b/Source/CTest/cmCTestBuildAndTestHandler.cxx index fccbc95..668a387 100644 --- a/Source/CTest/cmCTestBuildAndTestHandler.cxx +++ b/Source/CTest/cmCTestBuildAndTestHandler.cxx @@ -5,6 +5,7 @@ #include "cmCTest.h" #include "cmCTestTestHandler.h" #include "cmGlobalGenerator.h" +#include "cmMakefile.h" #include "cmSystemTools.h" #include "cmWorkingDirectory.h" #include "cmake.h" @@ -210,9 +211,14 @@ int cmCTestBuildAndTestHandler::RunCMakeAndTest(std::string* outstring) if (this->BuildNoCMake) { // Make the generator available for the Build call below. - cm.SetGlobalGenerator(cm.CreateGlobalGenerator(this->BuildGenerator)); - cm.SetGeneratorPlatform(this->BuildGeneratorPlatform); - cm.SetGeneratorToolset(this->BuildGeneratorToolset); + cmGlobalGenerator* gen = cm.CreateGlobalGenerator(this->BuildGenerator); + cm.SetGlobalGenerator(gen); + if (!this->BuildGeneratorPlatform.empty()) { + cmMakefile mf(gen, cm.GetCurrentSnapshot()); + if (!gen->SetGeneratorPlatform(this->BuildGeneratorPlatform, &mf)) { + return 1; + } + } // Load the cache to make CMAKE_MAKE_PROGRAM available. cm.LoadCache(this->BinaryDir); |