From bb394124886e59d2e196bdfb5e89c3a2711549a8 Mon Sep 17 00:00:00 2001 From: maier Date: Thu, 22 Nov 2012 13:14:41 +0000 Subject: [PATCH] Bugfix: Avoid underlinkage due to missing cholmod link interface git-svn-id: https://svn.dealii.org/branches/branch_cmake@27669 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/cmake/modules/FindUMFPACK.cmake | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/deal.II/cmake/modules/FindUMFPACK.cmake b/deal.II/cmake/modules/FindUMFPACK.cmake index d306e555de..25233b1313 100644 --- a/deal.II/cmake/modules/FindUMFPACK.cmake +++ b/deal.II/cmake/modules/FindUMFPACK.cmake @@ -47,7 +47,6 @@ FIND_LIBRARY(UMFPACK_LIBRARY lib${LIB_SUFFIX} lib64 lib Lib UMFPACK/Lib ) - SET(required_variables BLAS_FOUND AMD_FOUND @@ -55,6 +54,7 @@ SET(required_variables UMFPACK_LIBRARY ) + # # Well, recent versions of UMFPACK >= 5.6 include SuiteSparse_config.h, if so, # ensure that we'll find these headers as well. @@ -73,8 +73,25 @@ ENDIF() # Otherwise, we're lazy for the moment. # + +# +# UMFPACK may need to be linked with cholmod as well. +# +FIND_LIBRARY(CHOLMOD_LIBRARY + NAMES cholmod + HINTS + ${UMFPACK_DIR} + PATH_SUFFIXES + lib${LIB_SUFFIX} lib64 lib Lib UMFPACK/Lib + ) +IF(NOT CHOLMOD_LIBRARY MATCHES "-NOTFOUND") + SET(CHOLMOD_LIBRARY) +ENDIF() + + SET(UMFPACK_LIBRARIES ${UMFPACK_LIBRARY} + ${CHOLMOD_LIBRARY} # may be empty ${AMD_LIBRARY} ${SUITESPARSECONFIG_LIBRARY} # may be empty ${BLAS_LIBRARIES} @@ -90,6 +107,7 @@ SET(UMFPACK_LINKER_FLAGS ${BLAS_LINKER_FLAGS} ) + FIND_PACKAGE_HANDLE_STANDARD_ARGS(UMFPACK DEFAULT_MSG ${required_variables}) IF(UMFPACK_FOUND) @@ -97,6 +115,7 @@ IF(UMFPACK_FOUND) UMFPACK_LIBRARY UMFPACK_INCLUDE_DIR UMFPACK_DIR + CHOLMOD_LIBRARY atlas_LIBRARY blas_LIBRARY ) -- 2.39.5