diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2005-12-31 02:54:26 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2005-12-31 02:54:26 (GMT) |
commit | 14606c99020c658d4751138d4d9a48fd290d0cda (patch) | |
tree | 37a78ef14b46dc36213f88d4b52763212cb73154 | |
parent | 9b0a485c75641cebb472ec6aa9e83074fc09bc6f (diff) | |
download | CMake-14606c99020c658d4751138d4d9a48fd290d0cda.zip CMake-14606c99020c658d4751138d4d9a48fd290d0cda.tar.gz CMake-14606c99020c658d4751138d4d9a48fd290d0cda.tar.bz2 |
ENH: move framework stuff from FindFile to FindPath
-rw-r--r-- | Source/cmFindFileCommand.cxx | 79 | ||||
-rw-r--r-- | Source/cmFindFileCommand.h | 2 | ||||
-rw-r--r-- | Source/cmFindPathCommand.cxx | 82 | ||||
-rw-r--r-- | Source/cmFindPathCommand.h | 4 |
4 files changed, 84 insertions, 83 deletions
diff --git a/Source/cmFindFileCommand.cxx b/Source/cmFindFileCommand.cxx index 465d554..30c481b 100644 --- a/Source/cmFindFileCommand.cxx +++ b/Source/cmFindFileCommand.cxx @@ -89,17 +89,6 @@ bool cmFindFileCommand::InitialPass(std::vector<std::string> const& argsIn) return true; } } -#if defined (__APPLE__) - cmStdString fpath = this->FindHeaderInFrameworks(path, args[0].c_str(), args[1].c_str()); - if(fpath.size()) - { - m_Makefile->AddCacheDefinition(args[0].c_str(), - fpath.c_str(), - helpString.c_str(), - cmCacheManager::FILEPATH); - return true; - } -#endif std::string s = args[0] + "-NOTFOUND"; m_Makefile->AddCacheDefinition(args[0].c_str(), s.c_str(), @@ -108,71 +97,3 @@ bool cmFindFileCommand::InitialPass(std::vector<std::string> const& argsIn) return true; } -cmStdString cmFindFileCommand::FindHeaderInFrameworks( - std::vector<std::string> path, - const char* defineVar, - const char* file) -{ - (void)defineVar; - -#ifndef __APPLE__ - (void)path; - (void)file; - return cmStdString(""); -#else - cmStdString fileName = file; - cmStdString frameWorkName; - cmStdString::size_type pos = fileName.find("/"); - std::cerr << "ff " << fileName << " " << pos << "\n"; - if(pos != fileName.npos) - { - // remove the name from the slash; - fileName = fileName.substr(pos+1); - frameWorkName = file; - frameWorkName = frameWorkName.substr(0, frameWorkName.size()-fileName.size()-1); - // if the framework has a path in it then just use the filename - std::cerr << fileName << " " << frameWorkName << "\n"; - if(frameWorkName.find("/") != frameWorkName.npos) - { - fileName = file; - frameWorkName = ""; - } - } - path.push_back("~/Library/Frameworks"); - path.push_back("/Library/Frameworks"); - path.push_back("/System/Library/Frameworks"); - path.push_back("/Network/Library/Frameworks"); - for( std::vector<std::string>::iterator i = path.begin(); - i != path.end(); ++i) - { - if(frameWorkName.size()) - { - std::string fpath = *i; - fpath += "/"; - fpath += frameWorkName; - fpath += ".framework"; - std::string intPath = fpath; - intPath += "/Headers/"; - intPath += fileName; - std::cerr << "try " << intPath << "\n"; - if(cmSystemTools::FileExists(intPath.c_str())) - { - return fpath; - } - } - cmStdString glob = *i; - glob += "/*/Headers/"; - glob += file; - cmGlob globIt; - globIt.FindFiles(glob); - std::vector<std::string> files = globIt.GetFiles(); - if(files.size()) - { - cmStdString fheader = cmSystemTools::CollapseFullPath(files[0].c_str()); - fheader = cmSystemTools::GetFilenamePath(fheader); - return fheader; - } - } - return cmStdString(""); -#endif -} diff --git a/Source/cmFindFileCommand.h b/Source/cmFindFileCommand.h index e5fb661..1d4a600 100644 --- a/Source/cmFindFileCommand.h +++ b/Source/cmFindFileCommand.h @@ -79,8 +79,6 @@ public: "different extensions on different platforms, FIND_PROGRAM " "should be used instead of FIND_FILE when looking for them."; } - cmStdString FindHeaderInFrameworks( std::vector<std::string> path, - const char* var, const char* file); cmTypeMacro(cmFindFileCommand, cmCommand); }; diff --git a/Source/cmFindPathCommand.cxx b/Source/cmFindPathCommand.cxx index d454715..68da096 100644 --- a/Source/cmFindPathCommand.cxx +++ b/Source/cmFindPathCommand.cxx @@ -98,7 +98,18 @@ bool cmFindPathCommand::InitialPass(std::vector<std::string> const& argsIn) return true; } } - +#if defined (__APPLE__) + cmStdString fpath = this->FindHeaderInFrameworks(path, args[0].c_str(), args[1].c_str()); + if(fpath.size()) + { + m_Makefile->AddCacheDefinition(args[0].c_str(), + fpath.c_str(), + helpString.c_str(), + cmCacheManager::FILEPATH); + return true; + } +#endif + m_Makefile->AddCacheDefinition(args[0].c_str(), (args[0] + "-NOTFOUND").c_str(), helpString.c_str(), @@ -106,3 +117,72 @@ bool cmFindPathCommand::InitialPass(std::vector<std::string> const& argsIn) return true; } +cmStdString cmFindPathCommand::FindHeaderInFrameworks( + std::vector<std::string> path, + const char* defineVar, + const char* file) +{ + (void)defineVar; + +#ifndef __APPLE__ + (void)path; + (void)file; + return cmStdString(""); +#else + cmStdString fileName = file; + cmStdString frameWorkName; + cmStdString::size_type pos = fileName.find("/"); + std::cerr << "ff " << fileName << " " << pos << "\n"; + if(pos != fileName.npos) + { + // remove the name from the slash; + fileName = fileName.substr(pos+1); + frameWorkName = file; + frameWorkName = frameWorkName.substr(0, frameWorkName.size()-fileName.size()-1); + // if the framework has a path in it then just use the filename + std::cerr << fileName << " " << frameWorkName << "\n"; + if(frameWorkName.find("/") != frameWorkName.npos) + { + fileName = file; + frameWorkName = ""; + } + } + path.push_back("~/Library/Frameworks"); + path.push_back("/Library/Frameworks"); + path.push_back("/System/Library/Frameworks"); + path.push_back("/Network/Library/Frameworks"); + for( std::vector<std::string>::iterator i = path.begin(); + i != path.end(); ++i) + { + if(frameWorkName.size()) + { + std::string fpath = *i; + fpath += "/"; + fpath += frameWorkName; + fpath += ".framework"; + std::string intPath = fpath; + intPath += "/Headers/"; + intPath += fileName; + std::cerr << "try " << intPath << "\n"; + if(cmSystemTools::FileExists(intPath.c_str())) + { + return fpath; + } + } + cmStdString glob = *i; + glob += "/*/Headers/"; + glob += file; + cmGlob globIt; + globIt.FindFiles(glob); + std::vector<std::string> files = globIt.GetFiles(); + if(files.size()) + { + cmStdString fheader = cmSystemTools::CollapseFullPath(files[0].c_str()); + fheader = cmSystemTools::GetFilenamePath(fheader); + return fheader; + } + } + return cmStdString(""); +#endif + +} diff --git a/Source/cmFindPathCommand.h b/Source/cmFindPathCommand.h index 6553ca0..17e431b 100644 --- a/Source/cmFindPathCommand.h +++ b/Source/cmFindPathCommand.h @@ -78,7 +78,9 @@ public: "the cache entry <VAR>. The environment variable CMAKE_INCLUDE_PATH " "is searched as well as the PATH variable.\n"; } - + cmStdString FindHeaderInFrameworks( std::vector<std::string> path, + const char* var, const char* file); + cmTypeMacro(cmFindPathCommand, cmCommand); }; |