cmake-gui: Unset empty CC,CXX on global generator change

On subsequent runs of configure from cmake-gui the global generator is
swapped.  So on runs other than the first it was setting CC and CXX to
empty when they were otherwise undefined.

Instead, restore them if non-empty and unset them if empty when changing
the global generator and a previous generator exists.

Fixes: #21449
This commit is contained in:
Jake Cobb authored and Brad King committed 2021-05-24 11:34:07 -04:00
1 parent f9067e806f
commit c3bd5a6a2c
1 file changed
+6 -3
+6 -3
View File
@@ -1751,17 +1751,20 @@ void cmake::SetGlobalGenerator(std::unique_ptr<cmGlobalGenerator> gg)
}
if (this->GlobalGenerator) {
// restore the original environment variables CXX and CC
// Restore CC
std::string env = "CC=";
if (!this->CCEnvironment.empty()) {
env += this->CCEnvironment;
cmSystemTools::PutEnv(env);
} else {
cmSystemTools::UnPutEnv(env);
}
cmSystemTools::PutEnv(env);
env = "CXX=";
if (!this->CXXEnvironment.empty()) {
env += this->CXXEnvironment;
cmSystemTools::PutEnv(env);
} else {
cmSystemTools::UnPutEnv(env);
}
cmSystemTools::PutEnv(env);
}
// set the new