use lower case and not short path for uniq paths on window

This commit is contained in:
Bill Hoffman 2002-06-11 14:25:44 -04:00
parent 9ed9bffa6f
commit 344a7cff8d
4 changed files with 18 additions and 9 deletions

View File

@ -711,3 +711,9 @@ std::string cmNMakeMakefileGenerator::CreateMakeVariable(const char* s, const ch
cmSystemTools::ReplaceString(ret, "-", "_");
return ret;
}
std::string cmNMakeMakefileGenerator::LowerCasePath(const char* path)
{
return cmSystemTools::LowerCase(path);
}

View File

@ -90,7 +90,7 @@ protected:
virtual std::string ConvertToOutputPath(const char* s);
virtual std::string CreateMakeVariable(const char* s, const char* s2);
virtual std::string LowerCasePath(const char* path);
private:
std::string m_LibraryPathOption;// option to specifiy a link path -LIBPATH
std::string m_LibraryLinkOption; // option to specify a library (like -l, empty for nmake)

View File

@ -1356,7 +1356,7 @@ bool cmUnixMakefileGenerator::OutputObjectDepends(std::ostream& fout)
// by the class cmMakeDepend GenerateMakefile
void cmUnixMakefileGenerator::OutputCheckDepends(std::ostream& fout)
{
std::set<std::string> emittedShortPath;
std::set<std::string> emittedLowerPath;
std::set<std::string> emitted;
// Iterate over every target.
std::map<cmStdString, cmTarget>& targets = m_Makefile->GetTargets();
@ -1388,13 +1388,9 @@ void cmUnixMakefileGenerator::OutputCheckDepends(std::ostream& fout)
{
std::string dependfile =
this->ConvertToOutputPath(cmSystemTools::CollapseFullPath(dep->c_str()).c_str());
// use the short path function to create uniqe names
std::string shortpath;
if(!cmSystemTools::GetShortPath(dependfile.c_str(), shortpath))
{
shortpath = dependfile;
}
if(emittedShortPath.insert(shortpath).second)
// use the lower path function to create uniqe names
std::string lowerpath = this->LowerCasePath(dependfile.c_str());
if(emittedLowerPath.insert(lowerpath).second)
{
emitted.insert(dependfile);
fout << " \\\n" << dependfile ;

View File

@ -169,6 +169,13 @@ protected:
return std::string(s) + std::string(s2);
}
///! if the OS is case insensitive then return a lower case of the path.
virtual std::string LowerCasePath(const char* path)
{
return std::string(path);
}
protected:
std::string m_ExecutableOutputPath;
std::string m_LibraryOutputPath;