use lower case and not short path for uniq paths on window
This commit is contained in:
parent
9ed9bffa6f
commit
344a7cff8d
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
@ -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 ;
|
||||||
|
@ -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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user