diff options
author | Brad King <brad.king@kitware.com> | 2007-06-27 16:07:34 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2007-06-27 16:07:34 (GMT) |
commit | eab81489f10049fc1e97f65779adbca160fccf16 (patch) | |
tree | eb40ef1065176de3b83865b9d0f0d3d8b4701a1c | |
parent | 6352bd5cd34be913415303f078cd02b32b1b4e41 (diff) | |
download | CMake-eab81489f10049fc1e97f65779adbca160fccf16.zip CMake-eab81489f10049fc1e97f65779adbca160fccf16.tar.gz CMake-eab81489f10049fc1e97f65779adbca160fccf16.tar.bz2 |
ENH: Added global property FIND_LIBRARY_USE_LIB64_PATHS to allow lib64 paths to be searched optionally. Turn off the feature on debian systems. This addresses debian report 419007.
-rw-r--r-- | Modules/Platform/Linux.cmake | 6 | ||||
-rw-r--r-- | Modules/Platform/UnixPaths.cmake | 2 | ||||
-rw-r--r-- | Source/cmFindLibraryCommand.cxx | 10 | ||||
-rw-r--r-- | Source/cmake.cxx | 7 |
4 files changed, 23 insertions, 2 deletions
diff --git a/Modules/Platform/Linux.cmake b/Modules/Platform/Linux.cmake index 5378a9c..4de71d0 100644 --- a/Modules/Platform/Linux.cmake +++ b/Modules/Platform/Linux.cmake @@ -48,3 +48,9 @@ ELSE(DEFINED CMAKE_INSTALL_SO_NO_EXE) ENDIF(DEFINED CMAKE_INSTALL_SO_NO_EXE) INCLUDE(Platform/UnixPaths) + +# Debian has lib64 paths only for compatibility so they should not be +# searched. +IF(EXISTS "/etc/debian_version") + SET_PROPERTIES(GLOBAL PROPERTIES FIND_LIBRARY_USE_LIB64_PATHS FALSE) +ENDIF(EXISTS "/etc/debian_version") diff --git a/Modules/Platform/UnixPaths.cmake b/Modules/Platform/UnixPaths.cmake index cc1a9cd..c081407 100644 --- a/Modules/Platform/UnixPaths.cmake +++ b/Modules/Platform/UnixPaths.cmake @@ -37,3 +37,5 @@ SET(CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES /lib /usr/lib /usr/lib32 /usr/lib64 ) +# Enable use of lib64 search path variants by default. +SET_PROPERTIES(GLOBAL PROPERTIES FIND_LIBRARY_USE_LIB64_PATHS TRUE) diff --git a/Source/cmFindLibraryCommand.cxx b/Source/cmFindLibraryCommand.cxx index c57e8d8..5fcf089 100644 --- a/Source/cmFindLibraryCommand.cxx +++ b/Source/cmFindLibraryCommand.cxx @@ -67,8 +67,14 @@ bool cmFindLibraryCommand::InitialPass(std::vector<std::string> const& argsIn) } return true; } - // add special 64 bit paths if this is a 64 bit compile. - this->AddLib64Paths(); + + if(this->Makefile->GetCMakeInstance() + ->GetPropertyAsBool("FIND_LIBRARY_USE_LIB64_PATHS")) + { + // add special 64 bit paths if this is a 64 bit compile. + this->AddLib64Paths(); + } + std::string library; for(std::vector<std::string>::iterator i = this->Names.begin(); i != this->Names.end() ; ++i) diff --git a/Source/cmake.cxx b/Source/cmake.cxx index b6efa10..7bec758 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -2940,6 +2940,13 @@ void cmake::DefineProperties(cmake *cm) "platform supports shared libraries. Basically all current general " "general purpose OS do so, the exception are usually embedded systems " "with no or special OSs."); + cm->DefineProperty + ("FIND_LIBRARY_USE_LIB64_PATHS", cmProperty::GLOBAL, + "Whether FIND_LIBRARY should automatically search lib64 directories.", + "FIND_LIBRARY_USE_LIB64_PATHS is a boolean specifying whether the " + "FIND_LIBRARY command should automatically search the lib64 variant of " + "directories called lib in the search path when building 64-bit " + "binaries."); } |