ENH: removed unused methods after find changes
This commit is contained in:
parent
2000940136
commit
0db4cb0d96
|
@ -2194,234 +2194,6 @@ void cmMakefile::DisplayStatus(const char* message, float s)
|
||||||
->GetCMakeInstance()->UpdateProgress(message, 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<std::string>& userPaths)
|
|
||||||
{
|
|
||||||
// See if the executable exists as written.
|
|
||||||
if(cmSystemTools::FileExists(name))
|
|
||||||
{
|
|
||||||
return cmSystemTools::CollapseFullPath(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Construct a search path.
|
|
||||||
std::vector<std::string> 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<std::string> 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<std::string>::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<std::string> prefixes;
|
|
||||||
std::vector<std::string> suffixes;
|
|
||||||
cmSystemTools::ExpandListArgument(prefixes_list, prefixes, true);
|
|
||||||
cmSystemTools::ExpandListArgument(suffixes_list, suffixes, true);
|
|
||||||
|
|
||||||
std::string tryPath;
|
|
||||||
for(std::vector<std::string>::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<std::string>::iterator prefix = prefixes.begin();
|
|
||||||
prefix != prefixes.end(); ++prefix)
|
|
||||||
{
|
|
||||||
for(std::vector<std::string>::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<std::string>& callerPaths,
|
|
||||||
std::vector<std::string>& 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<std::string>& callerPaths,
|
|
||||||
std::vector<std::string>& 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::string cmMakefile::GetModulesFile(const char* filename)
|
||||||
{
|
{
|
||||||
std::vector<std::string> modulePath;
|
std::vector<std::string> modulePath;
|
||||||
|
|
|
@ -232,20 +232,6 @@ public:
|
||||||
*/
|
*/
|
||||||
void AddIncludeDirectory(const char*, bool before = false);
|
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<std::string>& path);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the include file or library search path.
|
|
||||||
*/
|
|
||||||
void GetIncludeSearchPath(const std::vector<std::string>& callerPaths,
|
|
||||||
std::vector<std::string>& path);
|
|
||||||
void GetLibrarySearchPath(const std::vector<std::string>& callerPaths,
|
|
||||||
std::vector<std::string>& path);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a variable definition to the build. This variable
|
* Add a variable definition to the build. This variable
|
||||||
* can be used in CMake to refer to lists, directories, etc.
|
* can be used in CMake to refer to lists, directories, etc.
|
||||||
|
|
Loading…
Reference in New Issue