From ecbc720829871ef0c0bf5e9cfb099e42e07fee4a Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Mon, 29 Apr 2002 10:23:29 -0400 Subject: BUG: make sure link directories are not duplicated --- Source/cmMakefile.cxx | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index ecfcb24..db4a7e5 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -539,10 +539,25 @@ void cmMakefile::AddLinkDirectory(const char* dir) // linear search results in n^2 behavior, but n won't be getting // much bigger than 20. We cannot use a set because of order // dependency of the link search path. - if(std::find(m_LinkDirectories.begin(), - m_LinkDirectories.end(), dir) == m_LinkDirectories.end()) + + // remove trailing slashes + if(dir && dir[strlen(dir)-1] == '/') + { + std::string newdir = dir; + newdir = newdir.substr(0, newdir.size()-1); + if(std::find(m_LinkDirectories.begin(), + m_LinkDirectories.end(), newdir.c_str()) == m_LinkDirectories.end()) + { + m_LinkDirectories.push_back(newdir); + } + } + else { - m_LinkDirectories.push_back(dir); + if(std::find(m_LinkDirectories.begin(), + m_LinkDirectories.end(), dir) == m_LinkDirectories.end()) + { + m_LinkDirectories.push_back(dir); + } } } -- cgit v0.12