From 5364766926a702ff3320f89b3563b0415b421a12 Mon Sep 17 00:00:00 2001 From: maier Date: Fri, 28 Sep 2012 12:15:40 +0000 Subject: [PATCH] Update UMFPACK as well. Prettify the rest git-svn-id: https://svn.dealii.org/branches/branch_cmake@26828 0785d39b-7218-0410-832d-ea1e28bc413d --- ..._lapack.cmake => configure_1_lapack.cmake} | 0 .../cmake/configure/configure_arpack.cmake | 6 +++ .../cmake/configure/configure_trilinos.cmake | 9 ++++- .../cmake/configure/configure_umfpack.cmake | 21 +++++----- deal.II/cmake/modules/FindAMD.cmake | 5 +++ deal.II/cmake/modules/FindARPACK.cmake | 5 +-- deal.II/cmake/modules/FindUMFPACK.cmake | 38 ++++++++++++++++++- 7 files changed, 68 insertions(+), 16 deletions(-) rename deal.II/cmake/configure/{configure_lapack.cmake => configure_1_lapack.cmake} (100%) diff --git a/deal.II/cmake/configure/configure_lapack.cmake b/deal.II/cmake/configure/configure_1_lapack.cmake similarity index 100% rename from deal.II/cmake/configure/configure_lapack.cmake rename to deal.II/cmake/configure/configure_1_lapack.cmake diff --git a/deal.II/cmake/configure/configure_arpack.cmake b/deal.II/cmake/configure/configure_arpack.cmake index 31b7dbd412..880e18be72 100644 --- a/deal.II/cmake/configure/configure_arpack.cmake +++ b/deal.II/cmake/configure/configure_arpack.cmake @@ -2,6 +2,12 @@ # Configuration for the ARPACK library: # +SET(FEATURE_ARPACK_DEPENDS + # Currently, with enabled arpack support, we also need to setup + # LAPACK support in deal.II: + DEAL_II_WITH_LAPACK + ) + MACRO(FEATURE_ARPACK_FIND_EXTERNAL var) FIND_PACKAGE(ARPACK) diff --git a/deal.II/cmake/configure/configure_trilinos.cmake b/deal.II/cmake/configure/configure_trilinos.cmake index 51c9f3228b..31d8576c59 100644 --- a/deal.II/cmake/configure/configure_trilinos.cmake +++ b/deal.II/cmake/configure/configure_trilinos.cmake @@ -102,8 +102,9 @@ MACRO(FEATURE_TRILINOS_FIND_EXTERNAL var) # with the -std=c++0x flag of GCC, see deal.II FAQ. # Test whether that is indeed the case # - LIST(APPEND CMAKE_REQUIRED_INCLUDES ${TRILINOS_INCLUDE_DIRS}) + SET(CMAKE_REQUIRED_INCLUDES ${TRILINOS_INCLUDE_DIRS}) PUSH_TEST_FLAG("${DEAL_II_CXX11_FLAG}") + CHECK_CXX_SOURCE_COMPILES( " #include @@ -135,8 +136,9 @@ MACRO(FEATURE_TRILINOS_FIND_EXTERNAL var) SET(${var} FALSE) ENDIF() ENDIF() + POP_TEST_FLAG() - LIST(REMOVE_ITEM CMAKE_REQUIRED_INCLUDES ${TRILINOS_INCLUDE_DIRS}) + SET(CMAKE_REQUIRED_INCLUDES) # # Remove the following variables from the cache to force a recheck: @@ -156,7 +158,10 @@ MACRO(FEATURE_TRILINOS_CONFIGURE_EXTERNAL var) LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES + # The Trilinos libraries: ${TRILINOS_LIBRARIES} + # All external libraries necessary for the Trilinos libraries. Nice and + # easy :-) ${Trilinos_TPL_LIBRARIES} ) diff --git a/deal.II/cmake/configure/configure_umfpack.cmake b/deal.II/cmake/configure/configure_umfpack.cmake index 6eecc3f3d5..3322c3edca 100644 --- a/deal.II/cmake/configure/configure_umfpack.cmake +++ b/deal.II/cmake/configure/configure_umfpack.cmake @@ -4,29 +4,26 @@ SET(FEATURE_UMFPACK_DEPENDS - # - # Currently, with enabled umfpack support, we also need LAPACK... - # + # Currently, with enabled umfpack support, we also need to setup + # LAPACK support in deal.II: DEAL_II_WITH_LAPACK ) MACRO(FEATURE_UMFPACK_FIND_EXTERNAL var) FIND_PACKAGE(UMFPACK) - FIND_PACKAGE(AMD) - IF(UMFPACK_FOUND AND AMD_FOUND) + IF(UMFPACK_FOUND) SET(${var} TRUE) ENDIF() ENDMACRO() MACRO(FEATURE_UMFPACK_CONFIGURE_EXTERNAL var) - INCLUDE_DIRECTORIES(${UMFPACK_INCLUDE_DIR} ${AMD_INCLUDE_DIR}) - LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES - ${UMFPACK_LIBRARY} ${AMD_LIBRARY} - ) + INCLUDE_DIRECTORIES(${UMFPACK_INCLUDE_DIRS}) + LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES ${UMFPACK_LIBRARIES}) + ADD_FLAGS(CMAKE_SHARED_LINKER_FLAGS "${UMFPACK_LINKER_FLAGS}") SET(HAVE_LIBUMFPACK TRUE) @@ -39,9 +36,13 @@ SET(FEATURE_UMFPACK_HAVE_CONTRIB TRUE) MACRO(FEATURE_UMFPACK_CONFIGURE_CONTRIB var) # - # Add umfpack and amd directly to the object files of deal.II + # DEAL_II_WITH_LAPACK will pull in an external BLAS library. So no need + # to setup something more than contrib BLAS here. # + # + # Add umfpack and amd directly to the object files of deal.II + # SET(umfpack_folder "${CMAKE_SOURCE_DIR}/contrib/umfpack") INCLUDE_DIRECTORIES( diff --git a/deal.II/cmake/modules/FindAMD.cmake b/deal.II/cmake/modules/FindAMD.cmake index 8fccdfdc10..6f1c550bd9 100644 --- a/deal.II/cmake/modules/FindAMD.cmake +++ b/deal.II/cmake/modules/FindAMD.cmake @@ -1,6 +1,11 @@ # # Try to find the AMD library # +# This module exports +# +# AMD_LIBRARY +# AMD_INCLUDE_DIR +# INCLUDE(FindPackageHandleStandardArgs) diff --git a/deal.II/cmake/modules/FindARPACK.cmake b/deal.II/cmake/modules/FindARPACK.cmake index a06eb965d1..b200e4576b 100644 --- a/deal.II/cmake/modules/FindARPACK.cmake +++ b/deal.II/cmake/modules/FindARPACK.cmake @@ -4,7 +4,6 @@ # This module exports # # ARPACK_LIBRARIES -# # ARPACK_LINKER_FLAGS # @@ -31,8 +30,8 @@ SET(ARPACK_LINKER_FLAGS ) FIND_PACKAGE_HANDLE_STANDARD_ARGS(ARPACK DEFAULT_MSG - ARPACK_LIBRARY - LAPACK_LIBRARIES + ARPACK_LIBRARIES + ARPACK_LINKER_FLAGS ) IF(ARPACK_FOUND) diff --git a/deal.II/cmake/modules/FindUMFPACK.cmake b/deal.II/cmake/modules/FindUMFPACK.cmake index eacab946d2..db73035339 100644 --- a/deal.II/cmake/modules/FindUMFPACK.cmake +++ b/deal.II/cmake/modules/FindUMFPACK.cmake @@ -1,12 +1,24 @@ # # Try to find the UMFPACK library # +# This module exports +# +# UMFPACK_LIBRARIES +# UMFPACK_INCLUDE_DIRS +# UMFPACK_LINKER_FLAGS +# INCLUDE(FindPackageHandleStandardArgs) SET_IF_EMPTY(AMD_DIR "$ENV{AMD_DIR}") SET_IF_EMPTY(UMFPACK_DIR "$ENV{UMFPACK_DIR}") +# +# UMFPACK depends on AMD and BLAS, so search for them: +# +FIND_PACKAGE(AMD) +FIND_PACKAGE(BLAS) + FIND_PATH(UMFPACK_INCLUDE_DIR umfpack.h HINTS ${AMD_DIR} @@ -23,13 +35,37 @@ FIND_LIBRARY(UMFPACK_LIBRARY lib${LIB_SUFFIX} lib64 lib Lib UMFPACK/Lib ../UMFPACK/Lib ) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(UMFPACK DEFAULT_MSG UMFPACK_LIBRARY UMFPACK_INCLUDE_DIR) +SET(UMFPACK_LIBRARIES + UMFPACK_LIBRARY + AMD_LIBRARY + BLAS_LIBRARIES + ) + +SET(UMFPACK_INCLUDE_DIRS + ${UMFPACK_INCLUDE_DIR} + ${AMD_INCLUDE_DIR} + ) + +SET(UMFPACK_LINKER_FLAGS + ${BLAS_LINKER_FLAGS} + ) + +FIND_PACKAGE_HANDLE_STANDARD_ARGS(UMFPACK DEFAULT_MSG + UMFPACK_LIBRARIES + UMFPACK_INCLUDE_DIRS + UMFPACK_LINKER_FLAGS + ) IF(UMFPACK_FOUND) MARK_AS_ADVANCED( UMFPACK_LIBRARY UMFPACK_INCLUDE_DIR UMFPACK_DIR + AMD_LIBRARY + AMD_INCLUDE_DIR + lapack_LIBRARY + atlas_LIBRARY + blas_LIBRARY ) ELSE() SET(UMFPACK_DIR "" CACHE STRING -- 2.39.5