diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index bf7f78dd2..f288e8418 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -2194,234 +2194,6 @@ void cmMakefile::DisplayStatus(const char* message, float s) ->GetCMakeInstance()->UpdateProgress(message, s); } -/** - * Find the library with the given name. Searches the given path and then - * the system search path. Returns the full path to the library if it is - * found. Otherwise, the empty string is returned. - */ -std::string cmMakefile::FindLibrary(const char* name, - const std::vector& userPaths) -{ - // See if the executable exists as written. - if(cmSystemTools::FileExists(name)) - { - return cmSystemTools::CollapseFullPath(name); - } - - // Construct a search path. - std::vector path; - this->GetLibrarySearchPath(userPaths, path); - - bool supportFrameworks = false; - if(this->GetDefinition("APPLE")) - { - supportFrameworks = true; - } - - // Add some lib directories specific to compilers, depending on the - // current generator, so that library that might have been stored here - // can be found too. - // i.e. Microsoft Visual Studio or .Net: path to compiler/../Lib - // Borland: path to compiler/../Lib - const char* genName = this->GetDefinition("CMAKE_GENERATOR"); - if (genName) - { - if (!strcmp(genName, "NMake Makefiles") || - !strcmp(genName, "Visual Studio 6")) - { - const char* compiler = this->GetDefinition("CMAKE_CXX_COMPILER"); - if (compiler) - { - std::string compiler_path = cmSystemTools::FindProgram(compiler); - if (compiler_path.size()) - { - std::string lib_path = - cmSystemTools::GetFilenamePath( - cmSystemTools::GetFilenamePath(compiler_path)) + "/Lib"; - path.push_back(lib_path); - } - } - } - else if (!strcmp(genName, "Visual Studio 7")) - { - // It is likely that the compiler won't be in the path for .Net, but - // we know where devenv is. - const char* devenv = this->GetDefinition("MICROSOFT_DEVENV"); - if (devenv) - { - std::string devenv_path = cmSystemTools::FindProgram(devenv); - if (devenv_path.size()) - { - std::string vc7_path = - cmSystemTools::GetFilenamePath( - cmSystemTools::GetFilenamePath( - cmSystemTools::GetFilenamePath(devenv_path))) + "/Vc7"; - path.push_back(vc7_path + "/lib"); - path.push_back(vc7_path + "/PlatformSDK/lib"); - } - } - } - else if (!strcmp(genName, "Borland Makefiles")) - { - const char* bcb_bin_path = this->GetDefinition("BCB_BIN_PATH"); - if (bcb_bin_path) - { - std::string lib_path = - cmSystemTools::GetFilenamePath(bcb_bin_path) + "/Lib"; - path.push_back(lib_path); - } - } - else if(supportFrameworks) - { - path.push_back("~/Library/Frameworks"); - path.push_back("/Library/Frameworks"); - path.push_back("/Network/Library/Frameworks"); - path.push_back("/System/Library/Frameworks"); - } - } - if(m_LocalGenerator->GetGlobalGenerator()->GetLanguageEnabled("C")) - { - std::string voidsize = this->GetRequiredDefinition("CMAKE_SIZEOF_VOID_P"); - int size = atoi(voidsize.c_str()); - std::vector path64; - if(size == 8) - { - // Convert each search path to possible 32- and 64-bit versions - // of the names. Check for the existence of each one here to - // avoid repeating the check for every file search. - for(std::vector::iterator i = path.begin(); - i != path.end(); ++i) - { - std::string s = *i; - std::string s2 = *i; - cmSystemTools::ReplaceString(s, "lib/", "lib64/"); - if((s != *i) && cmSystemTools::FileIsDirectory(s.c_str())) - { - path64.push_back(s); - } - s2 += "64"; - if(cmSystemTools::FileIsDirectory(s2.c_str())) - { - path64.push_back(s2); - } - if(cmSystemTools::FileIsDirectory(i->c_str())) - { - path64.push_back(*i); - } - } - // now look for the library in the 64 bit path - path = path64; - } - } - - // See if the library exists as written. - if(cmSystemTools::FileExists(name) && - !cmSystemTools::FileIsDirectory(name)) - { - return cmSystemTools::CollapseFullPath(name); - } - - // Get the list of possible prefixes and suffixes for libraries on - // this platform. - const char* prefixes_list = - this->GetRequiredDefinition("CMAKE_FIND_LIBRARY_PREFIXES"); - const char* suffixes_list = - this->GetRequiredDefinition("CMAKE_FIND_LIBRARY_SUFFIXES"); - std::vector prefixes; - std::vector suffixes; - cmSystemTools::ExpandListArgument(prefixes_list, prefixes, true); - cmSystemTools::ExpandListArgument(suffixes_list, suffixes, true); - - std::string tryPath; - for(std::vector::const_iterator p = path.begin(); - p != path.end(); ++p) - { - // Look for a framework. - if(supportFrameworks) - { - tryPath = *p; - tryPath += "/"; - tryPath += name; - tryPath += ".framework"; - if(cmSystemTools::FileExists(tryPath.c_str()) - && cmSystemTools::FileIsDirectory(tryPath.c_str())) - { - tryPath = cmSystemTools::CollapseFullPath(tryPath.c_str()); - cmSystemTools::ConvertToUnixSlashes(tryPath); - return tryPath; - } - } - - // Try various library naming conventions. - for(std::vector::iterator prefix = prefixes.begin(); - prefix != prefixes.end(); ++prefix) - { - for(std::vector::iterator suffix = suffixes.begin(); - suffix != suffixes.end(); ++suffix) - { - tryPath = *p; - tryPath += "/"; - tryPath += *prefix; - tryPath += name; - tryPath += *suffix; - if(cmSystemTools::FileExists(tryPath.c_str()) - && !cmSystemTools::FileIsDirectory(tryPath.c_str())) - { - tryPath = cmSystemTools::CollapseFullPath(tryPath.c_str()); - cmSystemTools::ConvertToUnixSlashes(tryPath); - return tryPath; - } - } - } - } - - // Couldn't find the library. - return ""; -} - -//---------------------------------------------------------------------------- -void -cmMakefile::GetIncludeSearchPath(const std::vector& callerPaths, - std::vector& path) -{ - // Add paths configured into the cache for this project. - if(const char* cmakeIncludePath = this->GetDefinition("CMAKE_INCLUDE_PATH")) - { - cmSystemTools::ExpandListArgument(cmakeIncludePath, path); - } - - // Add paths in the user's environment. - cmSystemTools::GetPath(path, "CMAKE_INCLUDE_PATH"); - cmSystemTools::GetPath(path, "INCLUDE"); - // Add standard system paths. - cmSystemTools::GetPath(path); - - // Add paths given by the caller. - path.insert(path.end(), callerPaths.begin(), callerPaths.end()); - -} - -//---------------------------------------------------------------------------- -void -cmMakefile::GetLibrarySearchPath(const std::vector& callerPaths, - std::vector& path) -{ - // Add paths configured into the cache for this project. - if(const char* cmakeLibPath = this->GetDefinition("CMAKE_LIBRARY_PATH")) - { - cmSystemTools::ExpandListArgument(cmakeLibPath, path); - } - - // Add paths in the user's environment. - cmSystemTools::GetPath(path, "CMAKE_LIBRARY_PATH"); - cmSystemTools::GetPath(path, "LIB"); - // Add standard system paths. - cmSystemTools::GetPath(path); - - // Add paths given by the caller. - path.insert(path.end(), callerPaths.begin(), callerPaths.end()); -} - std::string cmMakefile::GetModulesFile(const char* filename) { std::vector modulePath; diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h index fd8de7b00..6095cdba3 100644 --- a/Source/cmMakefile.h +++ b/Source/cmMakefile.h @@ -232,20 +232,6 @@ public: */ void AddIncludeDirectory(const char*, bool before = false); - /** - * Find a library (as in cmSystemTools) but add in compiler specific paths - */ - std::string FindLibrary(const char* name, - const std::vector& path); - - /** - * Get the include file or library search path. - */ - void GetIncludeSearchPath(const std::vector& callerPaths, - std::vector& path); - void GetLibrarySearchPath(const std::vector& callerPaths, - std::vector& path); - /** * Add a variable definition to the build. This variable * can be used in CMake to refer to lists, directories, etc.