diff options
author | Brad King <brad.king@kitware.com> | 2008-01-20 22:24:46 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2008-01-20 22:24:46 (GMT) |
commit | c7b844ba3e03aee882a8b629885ca49ecc06c146 (patch) | |
tree | 7f0332f5fa5f304a9b45370c17023c751938e474 /Source | |
parent | 9de44ef28a99f45069205d39026896bfcaac2ba5 (diff) | |
download | CMake-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.cxx | 14 | ||||
-rw-r--r-- | Source/kwsys/SystemTools.cxx | 45 |
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()) |