Commit 4878ed3d authored by Ian Scott's avatar Ian Scott
Browse files

MAkefile now strips duplicate directores from the libraries and include paths

parent 6d54c3d6
......@@ -408,6 +408,9 @@ void cmMakefile::FinalPass()
{
// do all the variable expansions here
this->ExpandVariables();
this->StripDuplicateDirectories();
// give all the commands a chance to do something
// after the file has been parsed before generation
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
{
this->ExpandVariablesInString(source, false);
......
......@@ -480,6 +480,11 @@ public:
* Expand variables in the makefiles ivars such as link directories etc
*/
void ExpandVariables();
/**
* Strip Duplicate directories from Library and Include paths
*/
void cmMakefile::StripDuplicateDirectories();
/** Recursivly read and create a cmMakefile object for
* all CMakeLists.txt files in the GetSubDirectories list.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment