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`.
This commit is contained in:
Brad King
2018-09-25 13:20:30 -04:00
parent d8294fefe8
commit 6597428c36

View File

@@ -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);