Don't search in architecture-irrelevant directories

If we are on a 64-bits machine, there is no point in searching lib32
and conversely. Quite the opposite, it can only end badly if a library
is actually found in the wrong architecture directory.
This commit is contained in:
Roland Kaufmann 2013-03-13 10:38:27 +01:00
parent d0004fcd76
commit ac861580d7
4 changed files with 24 additions and 8 deletions

View File

@ -46,12 +46,15 @@ find_path (ERT_GEN_INCLUDE_DIR
) )
# need all of these libraries # need all of these libraries
if (CMAKE_SIZEOF_VOID_P)
math (EXPR _BITS "8 * ${CMAKE_SIZEOF_VOID_P}")
endif (CMAKE_SIZEOF_VOID_P)
find_library (ERT_LIBRARY_ECL find_library (ERT_LIBRARY_ECL
NAMES "ecl" NAMES "ecl"
HINTS "${ERT_ROOT}" HINTS "${ERT_ROOT}"
PATHS "${PROJECT_BINARY_DIR}/../ert" "${PROJECT_BINARY_DIR}/../ert-build" PATHS "${PROJECT_BINARY_DIR}/../ert" "${PROJECT_BINARY_DIR}/../ert-build"
"${PROJECT_BINARY_DIR}/../ert/devel" "${PROJECT_BINARY_DIR}/../ert/devel"
PATH_SUFFIXES "lib" "lib64" "lib32" "lib/${CMAKE_LIBRARY_ARCHITECTURE}" PATH_SUFFIXES "lib" "lib${_BITS}" "lib/${CMAKE_LIBRARY_ARCHITECTURE}"
DOC "Path to ERT Eclipse library archive/shared object files" DOC "Path to ERT Eclipse library archive/shared object files"
) )
find_library (ERT_LIBRARY_GEOMETRY find_library (ERT_LIBRARY_GEOMETRY
@ -59,7 +62,7 @@ find_library (ERT_LIBRARY_GEOMETRY
HINTS "${ERT_ROOT}" HINTS "${ERT_ROOT}"
PATHS "${PROJECT_BINARY_DIR}/../ert" "${PROJECT_BINARY_DIR}/../ert-build" PATHS "${PROJECT_BINARY_DIR}/../ert" "${PROJECT_BINARY_DIR}/../ert-build"
"${PROJECT_BINARY_DIR}/../ert/devel" "${PROJECT_BINARY_DIR}/../ert/devel"
PATH_SUFFIXES "lib" "lib64" "lib32" "lib/${CMAKE_LIBRARY_ARCHITECTURE}" PATH_SUFFIXES "lib" "lib${_BITS}" "lib/${CMAKE_LIBRARY_ARCHITECTURE}"
DOC "Path to ERT Geometry library archive/shared object files" DOC "Path to ERT Geometry library archive/shared object files"
) )
find_library (ERT_LIBRARY_UTIL find_library (ERT_LIBRARY_UTIL
@ -67,7 +70,7 @@ find_library (ERT_LIBRARY_UTIL
HINTS "${ERT_ROOT}" HINTS "${ERT_ROOT}"
PATHS "${PROJECT_BINARY_DIR}/../ert" "${PROJECT_BINARY_DIR}/../ert-build" PATHS "${PROJECT_BINARY_DIR}/../ert" "${PROJECT_BINARY_DIR}/../ert-build"
"${PROJECT_BINARY_DIR}/../ert/devel" "${PROJECT_BINARY_DIR}/../ert/devel"
PATH_SUFFIXES "lib" "lib64" "lib32" "lib/${CMAKE_LIBRARY_ARCHITECTURE}" PATH_SUFFIXES "lib" "lib${_BITS}" "lib/${CMAKE_LIBRARY_ARCHITECTURE}"
DOC "Path to ERT Utilities library archive/shared object files" DOC "Path to ERT Utilities library archive/shared object files"
) )
# the "library" found here is actually a list of several files # the "library" found here is actually a list of several files

View File

@ -49,18 +49,23 @@ find_path(SUPERLU_INCLUDE_DIR
PATH_SUFFIXES "superlu" "include/superlu" "include" "SRC" PATH_SUFFIXES "superlu" "include/superlu" "include" "SRC"
) )
# only search in architecture-relevant directory
if (CMAKE_SIZEOF_VOID_P)
math (EXPR _BITS "8 * ${CMAKE_SIZEOF_VOID_P}")
endif (CMAKE_SIZEOF_VOID_P)
# look for library, only at positions given by the user # look for library, only at positions given by the user
find_library(SUPERLU_LIBRARY find_library(SUPERLU_LIBRARY
NAMES "superlu_4.3" "superlu_4.2" "superlu_4.1" "superlu_4.0" "superlu_3.1" "superlu_3.0" "superlu" NAMES "superlu_4.3" "superlu_4.2" "superlu_4.1" "superlu_4.0" "superlu_3.1" "superlu_3.0" "superlu"
PATHS ${SUPERLU_PREFIX} ${SUPERLU_ROOT} PATHS ${SUPERLU_PREFIX} ${SUPERLU_ROOT}
PATH_SUFFIXES "lib" "lib32" "lib64" "lib/${CMAKE_LIBRARY_ARCHITECTURE}" PATH_SUFFIXES "lib" "lib${_BITS}" "lib/${CMAKE_LIBRARY_ARCHITECTURE}"
NO_DEFAULT_PATH NO_DEFAULT_PATH
) )
# look for library files, including default paths # look for library files, including default paths
find_library(SUPERLU_LIBRARY find_library(SUPERLU_LIBRARY
NAMES "superlu_4.3" "superlu_4.2" "superlu_4.1" "superlu_4.0" "superlu_3.1" "superlu_3.0" "superlu" NAMES "superlu_4.3" "superlu_4.2" "superlu_4.1" "superlu_4.0" "superlu_3.1" "superlu_3.0" "superlu"
PATH_SUFFIXES "lib" "lib32" "lib64" "lib/${CMAKE_LIBRARY_ARCHITECTURE}" PATH_SUFFIXES "lib" "lib${_BITS}" "lib/${CMAKE_LIBRARY_ARCHITECTURE}"
) )
# check version specific macros # check version specific macros

View File

@ -120,13 +120,18 @@ if (SuiteSparse_EVERYTHING_FOUND)
return () return ()
endif (SuiteSparse_EVERYTHING_FOUND) endif (SuiteSparse_EVERYTHING_FOUND)
# only search in architecture-relevant directory
if (CMAKE_SIZEOF_VOID_P)
math (EXPR _BITS "8 * ${CMAKE_SIZEOF_VOID_P}")
endif (CMAKE_SIZEOF_VOID_P)
# if SuiteSparse >= 4.0 we must also link with libsuitesparseconfig # if SuiteSparse >= 4.0 we must also link with libsuitesparseconfig
# assume that this is the case if we find the library; otherwise just # assume that this is the case if we find the library; otherwise just
# ignore it (older versions don't have a file named like this) # ignore it (older versions don't have a file named like this)
find_library (config_LIBRARY find_library (config_LIBRARY
NAMES suitesparseconfig NAMES suitesparseconfig
PATHS ${SuiteSparse_SEARCH_PATH} PATHS ${SuiteSparse_SEARCH_PATH}
PATH_SUFFIXES ".libs" "lib" "lib32" "lib64" "lib/${CMAKE_LIBRARY_ARCHITECTURE}" "lib/ufsparse" PATH_SUFFIXES ".libs" "lib" "lib${_BITS}" "lib/${CMAKE_LIBRARY_ARCHITECTURE}" "lib/ufsparse"
) )
if (config_LIBRARY) if (config_LIBRARY)
list (APPEND SuiteSparse_EXTRA_LIBS ${config_LIBRARY}) list (APPEND SuiteSparse_EXTRA_LIBS ${config_LIBRARY})
@ -149,7 +154,7 @@ foreach (module IN LISTS SuiteSparse_MODULES)
find_library (${MODULE}_LIBRARY find_library (${MODULE}_LIBRARY
NAMES ${module} NAMES ${module}
PATHS ${SuiteSparse_SEARCH_PATH} PATHS ${SuiteSparse_SEARCH_PATH}
PATH_SUFFIXES "lib/.libs" "lib" "lib32" "lib64" "lib/${CMAKE_LIBRARY_ARCHITECTURE}" "lib/ufsparse" PATH_SUFFIXES "lib/.libs" "lib" "lib${_BITS}" "lib/${CMAKE_LIBRARY_ARCHITECTURE}" "lib/ufsparse"
) )
# start out by including the module itself; other dependencies will be added later # start out by including the module itself; other dependencies will be added later
set (${MODULE}_INCLUDE_DIRS ${${MODULE}_INCLUDE_DIR}) set (${MODULE}_INCLUDE_DIRS ${${MODULE}_INCLUDE_DIR})

View File

@ -115,11 +115,14 @@ function (find_opm_package module deps header lib defs prog conf)
# some modules are all in headers # some modules are all in headers
if (NOT "${lib}" STREQUAL "") if (NOT "${lib}" STREQUAL "")
if (CMAKE_SIZEOF_VOID_P)
math (EXPR _BITS "8 * ${CMAKE_SIZEOF_VOID_P}")
endif (CMAKE_SIZEOF_VOID_P)
find_library (${module}_LIBRARY find_library (${module}_LIBRARY
NAMES "${lib}" NAMES "${lib}"
PATHS ${_guess_bin} PATHS ${_guess_bin}
HINTS ${${module}_DIR} ${${module}_ROOT} ${${MODULE}_ROOT} ${PkgConf_${module}_LIBRARY_DIRS} HINTS ${${module}_DIR} ${${module}_ROOT} ${${MODULE}_ROOT} ${PkgConf_${module}_LIBRARY_DIRS}
PATH_SUFFIXES "lib" "lib/.libs" ".libs" "lib32" "lib64" "lib/${CMAKE_LIBRARY_ARCHITECTURE}" PATH_SUFFIXES "lib" "lib/.libs" ".libs" "lib${_BITS}" "lib/${CMAKE_LIBRARY_ARCHITECTURE}"
) )
else (NOT "${lib}" STREQUAL "") else (NOT "${lib}" STREQUAL "")
set (${module}_LIBRARY "") set (${module}_LIBRARY "")