summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/cmGlobalGenerator.cxx37
-rw-r--r--Source/cmGlobalGenerator.h2
-rw-r--r--Source/cmake.cxx37
-rw-r--r--Source/cmake.h2
4 files changed, 40 insertions, 38 deletions
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 0355256..56b21da 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -21,46 +21,11 @@
cmGlobalGenerator::cmGlobalGenerator()
{
- // Save the environment variables CXX and CC
- m_CXXEnvironment = getenv("CXX");
- m_CCEnvironment = getenv("CC");
+// do nothing duh
}
cmGlobalGenerator::~cmGlobalGenerator()
{
- // restore the original environment variables CXX and CC
- // Restor CC
- static char envCC[5000];
- std::string env = "CC=";
- if(m_CCEnvironment)
- {
- env += m_CCEnvironment;
- }
- std::string::size_type size = env.size();
- if(size > 4999)
- {
- size = 4999;
- }
- strncpy(envCC, env.c_str(), size);
- envCC[4999] = 0;
- putenv(envCC);
-
- // Restore CXX
- static char envCXX[5000];
- env = "CXX=";
- if(m_CXXEnvironment)
- {
- env += m_CXXEnvironment;
- }
- size = env.size();
- if(size > 4999)
- {
- size = 4999;
- }
- strncpy(envCXX, env.c_str(), size);
- envCXX[4999] = 0;
- putenv(envCXX);
-
// Delete any existing cmLocalGenerators
unsigned int i;
for (i = 0; i < m_LocalGenerators.size(); ++i)
diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h
index 3d61d9d..ee2a1cb 100644
--- a/Source/cmGlobalGenerator.h
+++ b/Source/cmGlobalGenerator.h
@@ -109,8 +109,6 @@ protected:
private:
std::map<cmStdString, bool> m_LanguageEnabled;
- const char* m_CXXEnvironment;
- const char* m_CCEnvironment;
};
#endif
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 4200de8..8aff9e3 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -708,9 +708,46 @@ void cmake::SetGlobalGenerator(cmGlobalGenerator *gg)
if (m_GlobalGenerator)
{
delete m_GlobalGenerator;
+ // restore the original environment variables CXX and CC
+ // Restor CC
+ static char envCC[5000];
+ std::string env = "CC=";
+ if(m_CCEnvironment)
+ {
+ env += m_CCEnvironment;
+ }
+ std::string::size_type size = env.size();
+ if(size > 4999)
+ {
+ size = 4999;
+ }
+ strncpy(envCC, env.c_str(), size);
+ envCC[4999] = 0;
+ putenv(envCC);
+
+ // Restore CXX
+ static char envCXX[5000];
+ env = "CXX=";
+ if(m_CXXEnvironment)
+ {
+ env += m_CXXEnvironment;
+ }
+ size = env.size();
+ if(size > 4999)
+ {
+ size = 4999;
+ }
+ strncpy(envCXX, env.c_str(), size);
+ envCXX[4999] = 0;
+ putenv(envCXX);
}
+
// set the new
m_GlobalGenerator = gg;
+ // Save the environment variables CXX and CC
+ m_CXXEnvironment = getenv("CXX");
+ m_CCEnvironment = getenv("CC");
+
// set the cmake instance just to be sure
gg->SetCMakeInstance(this);
}
diff --git a/Source/cmake.h b/Source/cmake.h
index d6ecbe5..143f1e1 100644
--- a/Source/cmake.h
+++ b/Source/cmake.h
@@ -266,5 +266,7 @@ private:
bool m_Local;
bool m_InTryCompile;
std::string m_CMakeCommand;
+ const char* m_CXXEnvironment;
+ const char* m_CCEnvironment;
};