[Cmake-commits] [cmake-commits] king committed cmFindPackageCommand.cxx 1.40 1.41 cmFindPackageCommand.h 1.21 1.22
cmake-commits at cmake.org
cmake-commits at cmake.org
Tue Aug 12 19:01:06 EDT 2008
Update of /cvsroot/CMake/CMake/Source
In directory public:/mounts/ram/cvs-serv4759/Source
Modified Files:
cmFindPackageCommand.cxx cmFindPackageCommand.h
Log Message:
ENH: Teach find_package about lib64 paths
When find_package is about to look in <prefix>/lib, search first in
<prefix>/lib64 in cases that find_library would use lib64 paths.
Index: cmFindPackageCommand.h
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmFindPackageCommand.h,v
retrieving revision 1.21
retrieving revision 1.22
diff -C 2 -d -r1.21 -r1.22
*** cmFindPackageCommand.h 9 Jun 2008 19:08:59 -0000 1.21
--- cmFindPackageCommand.h 12 Aug 2008 23:01:04 -0000 1.22
***************
*** 125,128 ****
--- 125,129 ----
bool NoBuilds;
bool DebugMode;
+ bool UseLib64Paths;
std::vector<std::string> Names;
std::vector<std::string> Configs;
Index: cmFindPackageCommand.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmFindPackageCommand.cxx,v
retrieving revision 1.40
retrieving revision 1.41
diff -C 2 -d -r1.40 -r1.41
*** cmFindPackageCommand.cxx 9 Jun 2008 19:22:09 -0000 1.40
--- cmFindPackageCommand.cxx 12 Aug 2008 23:01:04 -0000 1.41
***************
*** 64,67 ****
--- 64,68 ----
this->NoModule = false;
this->DebugMode = false;
+ this->UseLib64Paths = false;
this->VersionMajor = 0;
this->VersionMinor = 0;
***************
*** 299,302 ****
--- 300,315 ----
this->DebugMode = this->Makefile->IsOn("CMAKE_FIND_DEBUG_MODE");
+ // Lookup whether lib64 paths should be used.
+ if(const char* sizeof_dptr =
+ this->Makefile->GetDefinition("CMAKE_SIZEOF_VOID_P"))
+ {
+ if(atoi(sizeof_dptr) == 8 &&
+ this->Makefile->GetCMakeInstance()
+ ->GetPropertyAsBool("FIND_LIBRARY_USE_LIB64_PATHS"))
+ {
+ this->UseLib64Paths = true;
+ }
+ }
+
// Find the current root path mode.
this->SelectDefaultRootPathMode();
***************
*** 1458,1471 ****
{
public:
! cmFileListGeneratorEnumerate(const char* p1, const char* p2):
! cmFileListGeneratorBase()
! {
! this->Vector.push_back(p1);
! this->Vector.push_back(p2);
! }
cmFileListGeneratorEnumerate(cmFileListGeneratorEnumerate const& r):
cmFileListGeneratorBase(), Vector(r.Vector) {}
private:
! std::vector<std::string> Vector;
virtual bool Search(std::string const& parent, cmFileList& lister)
{
--- 1471,1480 ----
{
public:
! cmFileListGeneratorEnumerate(std::vector<std::string> const& v):
! cmFileListGeneratorBase(), Vector(v) {}
cmFileListGeneratorEnumerate(cmFileListGeneratorEnumerate const& r):
cmFileListGeneratorBase(), Vector(r.Vector) {}
private:
! std::vector<std::string> const& Vector;
virtual bool Search(std::string const& parent, cmFileList& lister)
{
***************
*** 1717,1720 ****
--- 1726,1738 ----
}
+ // Construct list of common install locations (lib and share).
+ std::vector<std::string> common;
+ if(this->UseLib64Paths)
+ {
+ common.push_back("lib64");
+ }
+ common.push_back("lib");
+ common.push_back("share");
+
// PREFIX/(share|lib)/(Foo|foo|FOO).*/
{
***************
*** 1722,1726 ****
lister
/ cmFileListGeneratorFixed(prefix)
! / cmFileListGeneratorEnumerate("lib", "share")
/ cmFileListGeneratorProject(this->Names);
if(lister.Search())
--- 1740,1744 ----
lister
/ cmFileListGeneratorFixed(prefix)
! / cmFileListGeneratorEnumerate(common)
/ cmFileListGeneratorProject(this->Names);
if(lister.Search())
***************
*** 1735,1739 ****
lister
/ cmFileListGeneratorFixed(prefix)
! / cmFileListGeneratorEnumerate("lib", "share")
/ cmFileListGeneratorProject(this->Names)
/ cmFileListGeneratorCaseInsensitive("cmake");
--- 1753,1757 ----
lister
/ cmFileListGeneratorFixed(prefix)
! / cmFileListGeneratorEnumerate(common)
/ cmFileListGeneratorProject(this->Names)
/ cmFileListGeneratorCaseInsensitive("cmake");
More information about the Cmake-commits
mailing list