summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2008-06-09 15:57:56 (GMT)
committerBrad King <brad.king@kitware.com>2008-06-09 15:57:56 (GMT)
commitd53e5dec3748e1d800dae595dcb78f2c4d55f788 (patch)
treed53cc056e338a02277753caabfe5ae5bb7a41170 /Source
parent3446bab75eb9a686841ec9bf6683beac603cbde5 (diff)
downloadCMake-d53e5dec3748e1d800dae595dcb78f2c4d55f788.zip
CMake-d53e5dec3748e1d800dae595dcb78f2c4d55f788.tar.gz
CMake-d53e5dec3748e1d800dae595dcb78f2c4d55f788.tar.bz2
ENH: In find_* implementation centralize addition of trailing slashes
- Create cmFindCommon::AddTrailingSlashes - Use it in cmFindBase and cmFindPackageCommand - Remove duplication from other find commands
Diffstat (limited to 'Source')
-rw-r--r--Source/cmFindBase.cxx4
-rw-r--r--Source/cmFindCommon.cxx15
-rw-r--r--Source/cmFindCommon.h3
-rw-r--r--Source/cmFindLibraryCommand.cxx10
-rw-r--r--Source/cmFindPackageCommand.cxx10
-rw-r--r--Source/cmFindPathCommand.cxx10
6 files changed, 23 insertions, 29 deletions
diff --git a/Source/cmFindBase.cxx b/Source/cmFindBase.cxx
index 68e091b..41e09f0 100644
--- a/Source/cmFindBase.cxx
+++ b/Source/cmFindBase.cxx
@@ -273,6 +273,10 @@ bool cmFindBase::ParseArguments(std::vector<std::string> const& argsIn)
// Handle search root stuff.
this->RerootPaths(this->SearchPaths);
+
+ // Add a trailing slash to all prefixes to aid the search process.
+ this->AddTrailingSlashes(this->SearchPaths);
+
return true;
}
diff --git a/Source/cmFindCommon.cxx b/Source/cmFindCommon.cxx
index a82e611..d69fdce 100644
--- a/Source/cmFindCommon.cxx
+++ b/Source/cmFindCommon.cxx
@@ -417,3 +417,18 @@ void cmFindCommon::AddPathInternal(std::string const& in_path,
this->SearchPaths.push_back(fullPath.c_str());
}
}
+
+//----------------------------------------------------------------------------
+void cmFindCommon::AddTrailingSlashes(std::vector<std::string>& paths)
+{
+ // Add a trailing slash to all paths to aid the search process.
+ for(std::vector<std::string>::iterator i = paths.begin();
+ i != paths.end(); ++i)
+ {
+ std::string& p = *i;
+ if(!p.empty() && p[p.size()-1] != '/')
+ {
+ p += "/";
+ }
+ }
+}
diff --git a/Source/cmFindCommon.h b/Source/cmFindCommon.h
index e141a08..a316b33 100644
--- a/Source/cmFindCommon.h
+++ b/Source/cmFindCommon.h
@@ -44,6 +44,9 @@ protected:
/** Place a set of search paths under the search roots. */
void RerootPaths(std::vector<std::string>& paths);
+ /** Add trailing slashes to all search paths. */
+ void AddTrailingSlashes(std::vector<std::string>& paths);
+
/** Compute the current default root path mode. */
void SelectDefaultRootPathMode();
diff --git a/Source/cmFindLibraryCommand.cxx b/Source/cmFindLibraryCommand.cxx
index ab61401..2bf54b1 100644
--- a/Source/cmFindLibraryCommand.cxx
+++ b/Source/cmFindLibraryCommand.cxx
@@ -252,16 +252,6 @@ std::string cmFindLibraryCommand::FindLibrary(const char* name)
}
}
- // 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.empty() || p[p.size()-1] != '/')
- {
- p += "/";
- }
- }
std::string tryPath;
for(std::vector<std::string>::const_iterator p = this->SearchPaths.begin();
p != this->SearchPaths.end(); ++p)
diff --git a/Source/cmFindPackageCommand.cxx b/Source/cmFindPackageCommand.cxx
index 5cc1724..426d3df 100644
--- a/Source/cmFindPackageCommand.cxx
+++ b/Source/cmFindPackageCommand.cxx
@@ -1067,15 +1067,7 @@ void cmFindPackageCommand::ComputeFinalPrefixes()
this->RerootPaths(prefixes);
// Add a trailing slash to all prefixes to aid the search process.
- for(std::vector<std::string>::iterator i = prefixes.begin();
- i != prefixes.end(); ++i)
- {
- std::string& prefix = *i;
- if(prefix[prefix.size()-1] != '/')
- {
- prefix += "/";
- }
- }
+ this->AddTrailingSlashes(prefixes);
}
//----------------------------------------------------------------------------
diff --git a/Source/cmFindPathCommand.cxx b/Source/cmFindPathCommand.cxx
index c04594a..e22b122 100644
--- a/Source/cmFindPathCommand.cxx
+++ b/Source/cmFindPathCommand.cxx
@@ -102,16 +102,6 @@ bool cmFindPathCommand
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.empty() || p[p.size()-1] != '/')
- {
- p += "/";
- }
- }
// Use the search path to find the file.
unsigned int k;
std::string result;