summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2018-09-25 17:20:30 (GMT)
committerBrad King <brad.king@kitware.com>2018-09-25 17:27:11 (GMT)
commit6597428c364c0a495bba88a6154ac0ed7f3cd461 (patch)
tree9c470b9f32ed9795d991a40b8e46dfbdb21fecbe /Source
parentd8294fefe8063cc2e0a0cfecf7fd8fef619cf0da (diff)
downloadCMake-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.cxx12
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);