BUG: Make sure search paths never have double-slashes. Leading with two slashes (//) on cygwin looks like a network path and delays while waiting for a non-existent machine. This file was left out of the previous checkin for this problem.

This commit is contained in:
Brad King 2008-01-20 17:41:14 -05:00
parent c7b844ba3e
commit 9f982d7d39

View File

@ -181,6 +181,16 @@ std::string cmFindLibraryCommand::FindLibrary(const char* name)
std::vector<std::string> suffixes; std::vector<std::string> suffixes;
cmSystemTools::ExpandListArgument(prefixes_list, prefixes, true); cmSystemTools::ExpandListArgument(prefixes_list, prefixes, true);
cmSystemTools::ExpandListArgument(suffixes_list, suffixes, true); cmSystemTools::ExpandListArgument(suffixes_list, suffixes, true);
// Add a trailing slash to all paths to aid the search process.
for(std::vector<std::string>::iterator i = this->SearchPaths.begin();
i != this->SearchPaths.end(); ++i)
{
std::string& p = *i;
if(p[p.size()-1] != '/')
{
p += "/";
}
}
std::string tryPath; std::string tryPath;
for(std::vector<std::string>::const_iterator p = this->SearchPaths.begin(); for(std::vector<std::string>::const_iterator p = this->SearchPaths.begin();
p != this->SearchPaths.end(); ++p) p != this->SearchPaths.end(); ++p)
@ -188,7 +198,6 @@ std::string cmFindLibraryCommand::FindLibrary(const char* name)
if(supportFrameworks) if(supportFrameworks)
{ {
tryPath = *p; tryPath = *p;
tryPath += "/";
tryPath += name; tryPath += name;
tryPath += ".framework"; tryPath += ".framework";
if(cmSystemTools::FileExists(tryPath.c_str()) if(cmSystemTools::FileExists(tryPath.c_str())
@ -209,7 +218,6 @@ std::string cmFindLibraryCommand::FindLibrary(const char* name)
suffix != suffixes.end(); ++suffix) suffix != suffixes.end(); ++suffix)
{ {
tryPath = *p; tryPath = *p;
tryPath += "/";
tryPath += *prefix; tryPath += *prefix;
tryPath += name; tryPath += name;
tryPath += *suffix; tryPath += *suffix;