summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2015-07-07 18:12:38 (GMT)
committerBrad King <brad.king@kitware.com>2015-07-07 18:12:38 (GMT)
commit3b60232ebcde69789a6c26f5c523ad107a7099c5 (patch)
treeca6cc88b3b5b72384ca6719bf76889da97f59b41
parent6ece2df941e75bfbcbfc4aa510ed92c4e71de35d (diff)
downloadCMake-3b60232ebcde69789a6c26f5c523ad107a7099c5.zip
CMake-3b60232ebcde69789a6c26f5c523ad107a7099c5.tar.gz
CMake-3b60232ebcde69789a6c26f5c523ad107a7099c5.tar.bz2
cmake: Preserve cached CMAKE_GENERATOR when an error occurs (#15640)
Since commit v2.4.0~4158 (When the initially configured generator is invalid, allow the user to change the generator without deleting the cache by hand, 2003-05-13) we remove CMAKE_GENERATOR from the cache if an error occurs and CMAKE_MAKE_PROGRAM is not cached. This worked at the time because all generators initialized the CMAKE_MAKE_PROGRAM cache entry. Since commit v3.0.0-rc1~260^2~4 (VS: Switch to internal CMAKE_MAKE_PROGRAM lookup by generators, 2013-11-15) and commit v3.2.0-rc1~39^2 (Xcode: Switch to internal CMAKE_MAKE_PROGRAM lookup by generator, 2015-01-28) the VS and Xcode generators no longer store CMAKE_MAKE_PROGRAM in the cache. Therefore any error during generation would wipe out CMAKE_GENERATOR from the cache and cause the next configuration to choose a default generator. Simply drop the behavior introduced by the original commit and always preserve CMAKE_GENERATOR. Since the time that behavior was introduced a lot more state is now saved in CMakeCache.txt and CMakeFiles/ during the initial configuration so it is not safe to change generators without starting fresh anyway.
-rw-r--r--Source/cmake.cxx13
1 files changed, 0 insertions, 13 deletions
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 0570399..7bf3832 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -1439,19 +1439,6 @@ int cmake::ActualConfigure()
}
}
- if(cmSystemTools::GetFatalErrorOccured())
- {
- const char* makeProgram =
- this->State->GetInitializedCacheValue("CMAKE_MAKE_PROGRAM");
- if (!makeProgram || cmSystemTools::IsOff(makeProgram))
- {
- // We must have a bad generator selection. Wipe the cache entry so the
- // user can select another.
- this->State->RemoveCacheEntry("CMAKE_GENERATOR");
- this->State->RemoveCacheEntry("CMAKE_EXTRA_GENERATOR");
- }
- }
-
cmMakefile* mf=this->GlobalGenerator->GetLocalGenerators()[0]->GetMakefile();
if (mf->IsOn("CTEST_USE_LAUNCHERS")
&& !this->State->GetGlobalProperty("RULE_LAUNCH_COMPILE"))