diff options
author | Brad King <brad.king@kitware.com> | 2008-06-09 15:57:56 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2008-06-09 15:57:56 (GMT) |
commit | d53e5dec3748e1d800dae595dcb78f2c4d55f788 (patch) | |
tree | d53cc056e338a02277753caabfe5ae5bb7a41170 /Source | |
parent | 3446bab75eb9a686841ec9bf6683beac603cbde5 (diff) | |
download | CMake-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.cxx | 4 | ||||
-rw-r--r-- | Source/cmFindCommon.cxx | 15 | ||||
-rw-r--r-- | Source/cmFindCommon.h | 3 | ||||
-rw-r--r-- | Source/cmFindLibraryCommand.cxx | 10 | ||||
-rw-r--r-- | Source/cmFindPackageCommand.cxx | 10 | ||||
-rw-r--r-- | Source/cmFindPathCommand.cxx | 10 |
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; |