diff options
author | Brad King <brad.king@kitware.com> | 2015-07-07 18:12:38 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2015-07-07 18:12:38 (GMT) |
commit | 3b60232ebcde69789a6c26f5c523ad107a7099c5 (patch) | |
tree | ca6cc88b3b5b72384ca6719bf76889da97f59b41 /Source | |
parent | 6ece2df941e75bfbcbfc4aa510ed92c4e71de35d (diff) | |
download | CMake-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.
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmake.cxx | 13 |
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")) |