Commit 384523a3 authored by Bill Hoffman's avatar Bill Hoffman
Browse files

restore the environment for cxx and cc in global generator

parent eff6a204
......@@ -21,10 +21,46 @@
cmGlobalGenerator::cmGlobalGenerator()
{
// Save the environment variables CXX and CC
m_CXXEnvironment = getenv("CXX");
m_CCEnvironment = getenv("CC");
}
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;
}
unsigned int 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)
......@@ -118,8 +154,13 @@ void cmGlobalGenerator::EnableLanguage(const char* lang,
static char envCC[5000];
std::string env = "CC=${CMAKE_C_COMPILER}";
mf->ExpandVariablesInString(env);
strncpy(envCC, env.c_str(), 4999);
envCC[4999] = 0;
unsigned int size = env.size();
if(size > 4999)
{
size = 4999;
}
strncpy(envCC, env.c_str(), size);
envCC[size] = 0;
putenv(envCC);
}
}
......@@ -141,8 +182,13 @@ void cmGlobalGenerator::EnableLanguage(const char* lang,
if(mf->GetDefinition("CMAKE_CXX_COMPILER"))
{
std::string env = "CXX=${CMAKE_CXX_COMPILER}";
mf->ExpandVariablesInString(env);
strncpy(envCXX, env.c_str(), 4999);
mf->ExpandVariablesInString(env);
unsigned int size = env.size();
if(size > 4999)
{
size = 4999;
}
strncpy(envCXX, env.c_str(), size);
envCXX[4999] = 0;
putenv(envCXX);
}
......
......@@ -109,6 +109,8 @@ protected:
private:
std::map<cmStdString, bool> m_LanguageEnabled;
const char* m_CXXEnvironment;
const char* m_CCEnvironment;
};
#endif
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment