Package: cmake Unlike autoconf, cmake doesn't use the linker to find libraries.
This patch adds support for multiarch library directories to cmake. It also needs a runtime dependency on dpkg-dev. Jonathan
--- cmake-2.8.3.orig/Source/cmFindBase.cxx +++ cmake-2.8.3/Source/cmFindBase.cxx @@ -324,6 +324,14 @@ void cmFindBase::AddPrefixPaths(std::vec { dir += "/"; } + if (subdir == "lib") + { + const char* triplet = this->Makefile->GetDefinition("CMAKE_ARCH_TRIPLET"); + if (triplet) + { + this->AddPathInternal(dir+"lib/"+triplet, pathType); + } + } std::string add = dir + subdir; if(add != "/") { --- cmake-2.8.3.orig/Modules/Platform/UnixPaths.cmake +++ cmake-2.8.3/Modules/Platform/UnixPaths.cmake @@ -29,6 +29,8 @@ SET(UNIX 1) GET_FILENAME_COMPONENT(_CMAKE_INSTALL_DIR "${CMAKE_ROOT}" PATH) GET_FILENAME_COMPONENT(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH) +EXECUTE_PROCESS(COMMAND dpkg-architecture -qDEB_HOST_MULTIARCH OUTPUT_VARIABLE CMAKE_ARCH_TRIPLET OUTPUT_STRIP_TRAILING_WHITESPACE) + # List common installation prefixes. These will be used for all # search types. LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH @@ -74,6 +76,7 @@ LIST(APPEND CMAKE_SYSTEM_PROGRAM_PATH ) LIST(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES + /lib/${CMAKE_ARCH_TRIPLET} /usr/lib/${CMAKE_ARCH_TRIPLET} /lib /usr/lib /usr/lib32 /usr/lib64 )