diff options
author | Brad King <brad.king@kitware.com> | 2018-09-28 14:58:20 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2018-09-28 14:58:51 (GMT) |
commit | 8fea6b0764dbf1b6893e7ca81d93cddca2facfce (patch) | |
tree | 82d6eb155bc968f6ce9ad36f027b6f76a0699d6c /Source | |
parent | 9c4445a0dd67a0176a00426a3bb6fed149c03810 (diff) | |
parent | 98e4fbdc063ea738f1f2fa38028be14492297d0f (diff) | |
download | CMake-8fea6b0764dbf1b6893e7ca81d93cddca2facfce.zip CMake-8fea6b0764dbf1b6893e7ca81d93cddca2facfce.tar.gz CMake-8fea6b0764dbf1b6893e7ca81d93cddca2facfce.tar.bz2 |
Merge topic 'vs-msbuild-platform'
98e4fbdc06 VS: Pass platform when invoking MSBuild
6597428c36 ctest: Fix generator platform under --build-nocmake
d8294fefe8 cmake: Fix generator platform under --build mode
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2413
Diffstat (limited to 'Source')
-rw-r--r-- | Source/CTest/cmCTestBuildAndTestHandler.cxx | 12 | ||||
-rw-r--r-- | Source/cmGlobalVisualStudio10Generator.cxx | 1 | ||||
-rw-r--r-- | Source/cmake.cxx | 8 |
3 files changed, 18 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); diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx index 5ea323a..82fcaad 100644 --- a/Source/cmGlobalVisualStudio10Generator.cxx +++ b/Source/cmGlobalVisualStudio10Generator.cxx @@ -938,6 +938,7 @@ void cmGlobalVisualStudio10Generator::GenerateBuildCommand( configArg += "Debug"; } makeCommand.push_back(configArg); + makeCommand.push_back("/p:Platform=" + this->GetPlatformName()); makeCommand.push_back(std::string("/p:VisualStudioVersion=") + this->GetIDEVersion()); diff --git a/Source/cmake.cxx b/Source/cmake.cxx index c26a380..889a5fb 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -2467,6 +2467,14 @@ int cmake::Build(int jobs, const std::string& dir, const std::string& target, return 1; } } + const char* cachedGeneratorPlatform = + this->State->GetCacheEntryValue("CMAKE_GENERATOR_PLATFORM"); + if (cachedGeneratorPlatform) { + cmMakefile mf(gen, this->GetCurrentSnapshot()); + if (!gen->SetGeneratorPlatform(cachedGeneratorPlatform, &mf)) { + return 1; + } + } std::string output; std::string projName; const char* cachedProjectName = |