BUG: don't report changed compiler variables if the path to the compiler

differs only e.g. a double slash somewhere instead only one slash as
directory separator (#8890)

Alex
This commit is contained in:
Alexander Neundorf 2009-05-10 05:29:10 -04:00
parent f114e68f7a
commit 2ab4e7df81
1 changed files with 20 additions and 12 deletions

View File

@ -95,20 +95,28 @@ void cmGlobalUnixMakefileGenerator3
std::string changeVars;
if(cname && (path != cname) && (optional==false))
{
const char* cvars =
this->GetCMakeInstance()->GetProperty(
"__CMAKE_DELETE_CACHE_CHANGE_VARS_");
if(cvars)
{
changeVars += cvars;
std::string cnameString = cname;
std::string pathString = path;
// get rid of potentially multiple slashes:
cmSystemTools::ConvertToUnixSlashes(cnameString);
cmSystemTools::ConvertToUnixSlashes(pathString);
if (cnameString != pathString)
{
const char* cvars =
this->GetCMakeInstance()->GetProperty(
"__CMAKE_DELETE_CACHE_CHANGE_VARS_");
if(cvars)
{
changeVars += cvars;
changeVars += ";";
}
changeVars += langComp;
changeVars += ";";
changeVars += cname;
this->GetCMakeInstance()->SetProperty(
"__CMAKE_DELETE_CACHE_CHANGE_VARS_",
changeVars.c_str());
}
changeVars += langComp;
changeVars += ";";
changeVars += cname;
this->GetCMakeInstance()->SetProperty(
"__CMAKE_DELETE_CACHE_CHANGE_VARS_",
changeVars.c_str());
}
mf->AddCacheDefinition(langComp.c_str(), path.c_str(),
doc.c_str(), cmCacheManager::FILEPATH);