BUG: make sure env CC and CXX are not set for VS IDE builds

This commit is contained in:
Bill Hoffman 2004-09-15 11:31:54 -04:00
parent 49b554c1b3
commit b1f3e10439
3 changed files with 23 additions and 15 deletions

View File

@ -198,21 +198,25 @@ void cmGlobalGenerator::EnableLanguage(std::vector<std::string>const& languages,
{ {
cmSystemTools::Error("Could not find cmake module file:", determineFile.c_str()); cmSystemTools::Error("Could not find cmake module file:", determineFile.c_str());
} }
// Some generators like visual studio should not use the env variables
// put ${CMake_(LANG)_COMPILER_ENV_VAR}=${CMAKE_(LANG)_COMPILER into the // So the global generator can specify that in this variable
// environment, in case user scripts want to run configure, or sub cmakes if(!mf->GetDefinition("CMAKE_GENERATOR_NO_COMPILER_ENV"))
std::string compilerName = "CMAKE_"; {
compilerName += lang; // put ${CMake_(LANG)_COMPILER_ENV_VAR}=${CMAKE_(LANG)_COMPILER into the
compilerName += "_COMPILER"; // environment, in case user scripts want to run configure, or sub cmakes
std::string compilerEnv = "CMAKE_"; std::string compilerName = "CMAKE_";
compilerEnv += lang; compilerName += lang;
compilerEnv += "_COMPILER_ENV_VAR"; compilerName += "_COMPILER";
std::string envVar = mf->GetRequiredDefinition(compilerEnv.c_str()); std::string compilerEnv = "CMAKE_";
std::string envVarValue = mf->GetRequiredDefinition(compilerName.c_str()); compilerEnv += lang;
std::string env = envVar; compilerEnv += "_COMPILER_ENV_VAR";
env += "="; std::string envVar = mf->GetRequiredDefinition(compilerEnv.c_str());
env += envVarValue; std::string envVarValue = mf->GetRequiredDefinition(compilerName.c_str());
cmSystemTools::PutEnv(env.c_str()); std::string env = envVar;
env += "=";
env += envVarValue;
cmSystemTools::PutEnv(env.c_str());
}
} }
// **** Step 5, Load the configured language compiler file, if not loaded. // **** Step 5, Load the configured language compiler file, if not loaded.

View File

@ -30,6 +30,9 @@ void cmGlobalVisualStudio6Generator::EnableLanguage(std::vector<std::string>cons
mf->AddDefinition("CMAKE_CFG_INTDIR","$(IntDir)"); mf->AddDefinition("CMAKE_CFG_INTDIR","$(IntDir)");
mf->AddDefinition("CMAKE_GENERATOR_CC", "cl"); mf->AddDefinition("CMAKE_GENERATOR_CC", "cl");
mf->AddDefinition("CMAKE_GENERATOR_CXX", "cl"); mf->AddDefinition("CMAKE_GENERATOR_CXX", "cl");
mf->AddDefinition("CMAKE_GENERATOR_RC", "rc");
mf->AddDefinition("CMAKE_GENERATOR_NO_COMPILER_ENV", "1");
mf->AddDefinition("CMAKE_GENERATOR_Fortran", "ifort");
this->GenerateConfigurations(mf); this->GenerateConfigurations(mf);
this->cmGlobalGenerator::EnableLanguage(lang, mf); this->cmGlobalGenerator::EnableLanguage(lang, mf);
} }

View File

@ -35,6 +35,7 @@ void cmGlobalVisualStudio7Generator::EnableLanguage(std::vector<std::string>cons
mf->AddDefinition("CMAKE_GENERATOR_CC", "cl"); mf->AddDefinition("CMAKE_GENERATOR_CC", "cl");
mf->AddDefinition("CMAKE_GENERATOR_CXX", "cl"); mf->AddDefinition("CMAKE_GENERATOR_CXX", "cl");
mf->AddDefinition("CMAKE_GENERATOR_RC", "rc"); mf->AddDefinition("CMAKE_GENERATOR_RC", "rc");
mf->AddDefinition("CMAKE_GENERATOR_NO_COMPILER_ENV", "1");
mf->AddDefinition("CMAKE_GENERATOR_Fortran", "ifort"); mf->AddDefinition("CMAKE_GENERATOR_Fortran", "ifort");
// Create list of configurations requested by user's cache, if any. // Create list of configurations requested by user's cache, if any.