summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2008-01-20 22:24:46 (GMT)
committerBrad King <brad.king@kitware.com>2008-01-20 22:24:46 (GMT)
commitc7b844ba3e03aee882a8b629885ca49ecc06c146 (patch)
tree7f0332f5fa5f304a9b45370c17023c751938e474 /Source
parent9de44ef28a99f45069205d39026896bfcaac2ba5 (diff)
downloadCMake-c7b844ba3e03aee882a8b629885ca49ecc06c146.zip
CMake-c7b844ba3e03aee882a8b629885ca49ecc06c146.tar.gz
CMake-c7b844ba3e03aee882a8b629885ca49ecc06c146.tar.bz2
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.
Diffstat (limited to 'Source')
-rw-r--r--Source/cmFindPathCommand.cxx14
-rw-r--r--Source/kwsys/SystemTools.cxx45
2 files changed, 46 insertions, 13 deletions
diff --git a/Source/cmFindPathCommand.cxx b/Source/cmFindPathCommand.cxx
index f322b43..53531dd 100644
--- a/Source/cmFindPathCommand.cxx
+++ b/Source/cmFindPathCommand.cxx
@@ -101,6 +101,16 @@ bool cmFindPathCommand::InitialPass(std::vector<std::string> const& argsIn)
supportFrameworks = false;
}
std::string framework;
+ // 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 += "/";
+ }
+ }
// Use the search path to find the file.
unsigned int k;
std::string result;
@@ -122,7 +132,6 @@ bool cmFindPathCommand::InitialPass(std::vector<std::string> const& argsIn)
if(result.size() == 0)
{
tryPath = this->SearchPaths[k];
- tryPath += "/";
tryPath += this->Names[j];
if(cmSystemTools::FileExists(tryPath.c_str()))
{
@@ -181,7 +190,6 @@ std::string cmFindPathCommand::FindHeaderInFramework(std::string& file,
if(frameWorkName.size())
{
std::string fpath = dir;
- fpath += "/";
fpath += frameWorkName;
fpath += ".framework";
std::string intPath = fpath;
@@ -200,7 +208,7 @@ std::string cmFindPathCommand::FindHeaderInFramework(std::string& file,
// if it is not found yet or not a framework header, then do a glob search
// for all files in dir/*/Headers/
cmStdString glob = dir;
- glob += "/*/Headers/";
+ glob += "*/Headers/";
glob += file;
cmsys::Glob globIt;
globIt.FindFiles(glob);
diff --git a/Source/kwsys/SystemTools.cxx b/Source/kwsys/SystemTools.cxx
index 5c81ae4..de00019 100644
--- a/Source/kwsys/SystemTools.cxx
+++ b/Source/kwsys/SystemTools.cxx
@@ -2112,13 +2112,22 @@ kwsys_stl::string SystemTools
{
path.push_back(*i);
}
+ // Add a trailing slash to all paths to aid the search process.
+ for(kwsys_stl::vector<kwsys_stl::string>::iterator i = path.begin();
+ i != path.end(); ++i)
+ {
+ kwsys_stl::string& p = *i;
+ if(p[p.size()-1] != '/')
+ {
+ p += "/";
+ }
+ }
// now look for the file
kwsys_stl::string tryPath;
for(kwsys_stl::vector<kwsys_stl::string>::const_iterator p = path.begin();
p != path.end(); ++p)
{
tryPath = *p;
- tryPath += "/";
tryPath += name;
if(SystemTools::FileExists(tryPath.c_str()))
{
@@ -2235,6 +2244,16 @@ kwsys_stl::string SystemTools::FindProgram(
{
path.push_back(*i);
}
+ // Add a trailing slash to all paths to aid the search process.
+ for(kwsys_stl::vector<kwsys_stl::string>::iterator i = path.begin();
+ i != path.end(); ++i)
+ {
+ kwsys_stl::string& p = *i;
+ if(p[p.size()-1] != '/')
+ {
+ p += "/";
+ }
+ }
// Try each path
for(kwsys_stl::vector<kwsys_stl::string>::iterator p = path.begin();
p != path.end(); ++p)
@@ -2250,7 +2269,6 @@ kwsys_stl::string SystemTools::FindProgram(
= extensions.begin(); ext != extensions.end(); ++ext)
{
tryPath = *p;
- tryPath += "/";
tryPath += name;
tryPath += *ext;
if(SystemTools::FileExists(tryPath.c_str()) &&
@@ -2262,7 +2280,6 @@ kwsys_stl::string SystemTools::FindProgram(
}
// now try it without them
tryPath = *p;
- tryPath += "/";
tryPath += name;
if(SystemTools::FileExists(tryPath.c_str()) &&
!SystemTools::FileIsDirectory(tryPath.c_str()))
@@ -2319,13 +2336,22 @@ kwsys_stl::string SystemTools
{
path.push_back(*i);
}
+ // Add a trailing slash to all paths to aid the search process.
+ for(kwsys_stl::vector<kwsys_stl::string>::iterator i = path.begin();
+ i != path.end(); ++i)
+ {
+ kwsys_stl::string& p = *i;
+ if(p[p.size()-1] != '/')
+ {
+ p += "/";
+ }
+ }
kwsys_stl::string tryPath;
for(kwsys_stl::vector<kwsys_stl::string>::const_iterator p = path.begin();
p != path.end(); ++p)
{
#if defined(__APPLE__)
tryPath = *p;
- tryPath += "/";
tryPath += name;
tryPath += ".framework";
if(SystemTools::FileExists(tryPath.c_str())
@@ -2336,7 +2362,6 @@ kwsys_stl::string SystemTools
#endif
#if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__MINGW32__)
tryPath = *p;
- tryPath += "/";
tryPath += name;
tryPath += ".lib";
if(SystemTools::FileExists(tryPath.c_str())
@@ -2346,7 +2371,7 @@ kwsys_stl::string SystemTools
}
#else
tryPath = *p;
- tryPath += "/lib";
+ tryPath += "lib";
tryPath += name;
tryPath += ".so";
if(SystemTools::FileExists(tryPath.c_str())
@@ -2355,7 +2380,7 @@ kwsys_stl::string SystemTools
return SystemTools::CollapseFullPath(tryPath.c_str());
}
tryPath = *p;
- tryPath += "/lib";
+ tryPath += "lib";
tryPath += name;
tryPath += ".a";
if(SystemTools::FileExists(tryPath.c_str())
@@ -2364,7 +2389,7 @@ kwsys_stl::string SystemTools
return SystemTools::CollapseFullPath(tryPath.c_str());
}
tryPath = *p;
- tryPath += "/lib";
+ tryPath += "lib";
tryPath += name;
tryPath += ".sl";
if(SystemTools::FileExists(tryPath.c_str())
@@ -2373,7 +2398,7 @@ kwsys_stl::string SystemTools
return SystemTools::CollapseFullPath(tryPath.c_str());
}
tryPath = *p;
- tryPath += "/lib";
+ tryPath += "lib";
tryPath += name;
tryPath += ".dylib";
if(SystemTools::FileExists(tryPath.c_str())
@@ -2382,7 +2407,7 @@ kwsys_stl::string SystemTools
return SystemTools::CollapseFullPath(tryPath.c_str());
}
tryPath = *p;
- tryPath += "/lib";
+ tryPath += "lib";
tryPath += name;
tryPath += ".dll";
if(SystemTools::FileExists(tryPath.c_str())