diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2006-03-02 18:30:22 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2006-03-02 18:30:22 (GMT) |
commit | a5825cd11af3a6def49c9528e77f4394babff7de (patch) | |
tree | cf8f0ed84fc150bd0befa0b00937deb0cb1cec0a /Source/cmFindFileCommand.cxx | |
parent | 2f78d874a75e8032b90997df3449040c941b1b5b (diff) | |
download | CMake-a5825cd11af3a6def49c9528e77f4394babff7de.zip CMake-a5825cd11af3a6def49c9528e77f4394babff7de.tar.gz CMake-a5825cd11af3a6def49c9528e77f4394babff7de.tar.bz2 |
ENH: check in new find stuff
Diffstat (limited to 'Source/cmFindFileCommand.cxx')
-rw-r--r-- | Source/cmFindFileCommand.cxx | 86 |
1 files changed, 9 insertions, 77 deletions
diff --git a/Source/cmFindFileCommand.cxx b/Source/cmFindFileCommand.cxx index daf02dd..b268297 100644 --- a/Source/cmFindFileCommand.cxx +++ b/Source/cmFindFileCommand.cxx @@ -15,83 +15,15 @@ =========================================================================*/ #include "cmFindFileCommand.h" -#include "cmCacheManager.h" -#include "cmGlob.h" -#include <stdlib.h> - +#include "cmSystemTools.h" -// cmFindFileCommand -bool cmFindFileCommand::InitialPass(std::vector<std::string> const& argsIn) +cmFindFileCommand::cmFindFileCommand() { - if(argsIn.size() < 2) - { - this->SetError("called with incorrect number of arguments"); - return false; - } - std::string helpString = "Where can the "; - helpString += argsIn[1] + " file be found"; - size_t size = argsIn.size(); - std::vector<std::string> args; - for(unsigned int j = 0; j < size; ++j) - { - if(argsIn[j] != "DOC") - { - args.push_back(argsIn[j]); - } - else - { - if(j+1 < size) - { - helpString = argsIn[j+1]; - } - break; - } - } - - std::vector<std::string>::const_iterator i = args.begin(); - // Use the first argument as the name of something to be defined - const char* define = (*i).c_str(); - i++; // move iterator to next arg - // Now check and see if the value has been stored in the cache - // already, if so use that value and don't look for the program - const char* cacheValue - = m_Makefile->GetDefinition(define); - if(cacheValue && !cmSystemTools::IsNOTFOUND(cacheValue)) - { - return true; - } - - // The location is not in the cache. Create a search path. - std::vector<std::string> path; - std::vector<std::string> callPaths; - for (unsigned int j = 2; j < args.size(); j++) - { - // Glob the entry in case of wildcards. - cmSystemTools::GlobDirs(args[j].c_str(), callPaths); - } - m_Makefile->GetLibrarySearchPath(callPaths, path); - - // Use the search path to find the file. - for(unsigned int k=0; k < path.size(); k++) - { - std::string tryPath = path[k]; - tryPath += "/"; - tryPath += *i; - if(cmSystemTools::FileExists(tryPath.c_str())) - { - // Save the value in the cache - m_Makefile->AddCacheDefinition(define, - tryPath.c_str(), - helpString.c_str(), - cmCacheManager::FILEPATH); - return true; - } - } - std::string s = args[0] + "-NOTFOUND"; - m_Makefile->AddCacheDefinition(args[0].c_str(), - s.c_str(), - helpString.c_str(), - cmCacheManager::FILEPATH); - return true; + this->IncludeFileInPath = true; + cmSystemTools::ReplaceString(this->GenericDocumentation, + "FIND_PATH", "FIND_FILE"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "directory containing the named file", "full path to named file"); + cmSystemTools::ReplaceString(this->GenericDocumentation, + "file in a directory", "full path to a file"); } - |