MAkefile now strips duplicate directores from the libraries and include paths
This commit is contained in:
parent
6d54c3d6f8
commit
4878ed3d29
|
@ -408,6 +408,9 @@ void cmMakefile::FinalPass()
|
||||||
{
|
{
|
||||||
// do all the variable expansions here
|
// do all the variable expansions here
|
||||||
this->ExpandVariables();
|
this->ExpandVariables();
|
||||||
|
|
||||||
|
this->StripDuplicateDirectories();
|
||||||
|
|
||||||
// give all the commands a chance to do something
|
// give all the commands a chance to do something
|
||||||
// after the file has been parsed before generation
|
// after the file has been parsed before generation
|
||||||
for(std::vector<cmCommand*>::iterator i = m_UsedCommands.begin();
|
for(std::vector<cmCommand*>::iterator i = m_UsedCommands.begin();
|
||||||
|
@ -790,6 +793,29 @@ int cmMakefile::DumpDocumentationToFile(const char *fileName)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Remove duplicate directories from the library and include paths.
|
||||||
|
void cmMakefile::StripDuplicateDirectories()
|
||||||
|
{
|
||||||
|
std::vector<std::string>::iterator begin, end;
|
||||||
|
// remove duplicates from m_IncludeDirectories
|
||||||
|
begin = m_IncludeDirectories.begin();
|
||||||
|
end = m_IncludeDirectories.end();
|
||||||
|
std::list<std::string> tmp1(begin, end);
|
||||||
|
tmp1.sort();
|
||||||
|
m_IncludeDirectories.clear();
|
||||||
|
std::unique_copy(tmp1.begin(), tmp1.end(), std::back_inserter(m_IncludeDirectories));
|
||||||
|
|
||||||
|
// remove duplicates from m_LinkDirectories
|
||||||
|
begin = m_LinkDirectories.begin();
|
||||||
|
end = m_LinkDirectories.end();
|
||||||
|
std::list<std::string> tmp2(begin, end);
|
||||||
|
tmp2.sort();
|
||||||
|
m_LinkDirectories.clear();
|
||||||
|
std::unique_copy(tmp2.begin(), tmp2.end(), std::back_inserter(m_LinkDirectories));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void cmMakefile::ExpandVariablesInString(std::string& source) const
|
void cmMakefile::ExpandVariablesInString(std::string& source) const
|
||||||
{
|
{
|
||||||
this->ExpandVariablesInString(source, false);
|
this->ExpandVariablesInString(source, false);
|
||||||
|
|
|
@ -481,6 +481,11 @@ public:
|
||||||
*/
|
*/
|
||||||
void ExpandVariables();
|
void ExpandVariables();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Strip Duplicate directories from Library and Include paths
|
||||||
|
*/
|
||||||
|
void cmMakefile::StripDuplicateDirectories();
|
||||||
|
|
||||||
/** Recursivly read and create a cmMakefile object for
|
/** Recursivly read and create a cmMakefile object for
|
||||||
* all CMakeLists.txt files in the GetSubDirectories list.
|
* all CMakeLists.txt files in the GetSubDirectories list.
|
||||||
* Once the file is found, it ReadListFile is called on
|
* Once the file is found, it ReadListFile is called on
|
||||||
|
|
Loading…
Reference in New Issue