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, "-", "_"); cmSystemTools::ReplaceString(ret, "-", "_");
return 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 ConvertToOutputPath(const char* s);
virtual std::string CreateMakeVariable(const char* s, const char* s2); virtual std::string CreateMakeVariable(const char* s, const char* s2);
virtual std::string LowerCasePath(const char* path);
private: private:
std::string m_LibraryPathOption;// option to specifiy a link path -LIBPATH 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) 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 // by the class cmMakeDepend GenerateMakefile
void cmUnixMakefileGenerator::OutputCheckDepends(std::ostream& fout) void cmUnixMakefileGenerator::OutputCheckDepends(std::ostream& fout)
{ {
std::set<std::string> emittedShortPath; std::set<std::string> emittedLowerPath;
std::set<std::string> emitted; std::set<std::string> emitted;
// Iterate over every target. // Iterate over every target.
std::map<cmStdString, cmTarget>& targets = m_Makefile->GetTargets(); std::map<cmStdString, cmTarget>& targets = m_Makefile->GetTargets();
@ -1388,13 +1388,9 @@ void cmUnixMakefileGenerator::OutputCheckDepends(std::ostream& fout)
{ {
std::string dependfile = std::string dependfile =
this->ConvertToOutputPath(cmSystemTools::CollapseFullPath(dep->c_str()).c_str()); this->ConvertToOutputPath(cmSystemTools::CollapseFullPath(dep->c_str()).c_str());
// use the short path function to create uniqe names // use the lower path function to create uniqe names
std::string shortpath; std::string lowerpath = this->LowerCasePath(dependfile.c_str());
if(!cmSystemTools::GetShortPath(dependfile.c_str(), shortpath)) if(emittedLowerPath.insert(lowerpath).second)
{
shortpath = dependfile;
}
if(emittedShortPath.insert(shortpath).second)
{ {
emitted.insert(dependfile); emitted.insert(dependfile);
fout << " \\\n" << dependfile ; fout << " \\\n" << dependfile ;

View File

@ -169,6 +169,13 @@ protected:
return std::string(s) + std::string(s2); 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: protected:
std::string m_ExecutableOutputPath; std::string m_ExecutableOutputPath;
std::string m_LibraryOutputPath; std::string m_LibraryOutputPath;