From dd7e5f8b89d94872300c0d97d0fe41ad8504d36c Mon Sep 17 00:00:00 2001 From: maier Date: Sun, 4 Nov 2012 19:13:53 +0000 Subject: [PATCH] Move test for TRILINOS_WITH_MPI to FindTRILINOS.cmake, change test to query Epetra_config.h git-svn-id: https://svn.dealii.org/branches/branch_cmake@27350 0785d39b-7218-0410-832d-ea1e28bc413d --- .../cmake/configure/configure_trilinos.cmake | 8 --- deal.II/cmake/modules/FindTRILINOS.cmake | 59 +++++++++++++------ 2 files changed, 42 insertions(+), 25 deletions(-) diff --git a/deal.II/cmake/configure/configure_trilinos.cmake b/deal.II/cmake/configure/configure_trilinos.cmake index 5c974e70c8..0783c48c9d 100644 --- a/deal.II/cmake/configure/configure_trilinos.cmake +++ b/deal.II/cmake/configure/configure_trilinos.cmake @@ -90,14 +90,6 @@ MACRO(FEATURE_TRILINOS_FIND_EXTERNAL var) # Trilinos has to be configured with the same MPI configuration as # deal.II. # - # Epetra installs Epetra_MpiComm.h if configured trilinos was - # configured with mpi. We use this as a check for the mpi configuration - # of Epetra. - # - IF(EXISTS "${TRILINOS_INCLUDE_DIRS}/Epetra_MpiComm.h") - SET(TRILINOS_WITH_MPI TRUE) - ENDIF() - IF( (TRILINOS_WITH_MPI AND NOT DEAL_II_COMPILER_SUPPORTS_MPI) OR (NOT TRILINOS_WITH_MPI AND DEAL_II_COMPILER_SUPPORTS_MPI)) diff --git a/deal.II/cmake/modules/FindTRILINOS.cmake b/deal.II/cmake/modules/FindTRILINOS.cmake index c43ebf0718..3b44f19675 100644 --- a/deal.II/cmake/modules/FindTRILINOS.cmake +++ b/deal.II/cmake/modules/FindTRILINOS.cmake @@ -23,6 +23,7 @@ # TRILINOS_VERSION_MAJOR # TRILINOS_VERSION_MINOR # TRILINOS_VERSION_SUBMINOR +# TRILINOS_WITH_MPI # INCLUDE(FindPackageHandleStandardArgs) @@ -44,22 +45,6 @@ FIND_PACKAGE(TRILINOS NO_SYSTEM_ENVIRONMENT_PATH ) -# -# Extract the major and minor version numbers: -# -STRING(REGEX REPLACE - "^([0-9]+).*$" "\\1" - TRILINOS_VERSION_MAJOR "${Trilinos_VERSION}") - -STRING(REGEX REPLACE - "^[0-9]+\\.([0-9]+).*$" "\\1" - TRILINOS_VERSION_MINOR "${Trilinos_VERSION}") - -STRING(REGEX REPLACE - "^[0-9]+\\.[0-9]+\\.([0-9]+).*$" "\\1" - TRILINOS_VERSION_SUBMINOR "${Trilinos_VERSION}") - - SET(TRILINOS_INCLUDE_DIRS ${Trilinos_INCLUDE_DIRS}) # @@ -88,20 +73,60 @@ FOREACH(_library ${Trilinos_LIBRARIES}) UNSET(TRILINOS_LIBRARY_${_library} CACHE) ENDFOREACH() - FIND_PACKAGE_HANDLE_STANDARD_ARGS(TRILINOS DEFAULT_MSG TRILINOS_DIR TRILINOS_INCLUDE_DIRS TRILINOS_LIBRARIES ) + IF(TRILINOS_FOUND) + + # + # Extract the major and minor version numbers: + # + STRING(REGEX REPLACE + "^([0-9]+).*$" "\\1" + TRILINOS_VERSION_MAJOR "${Trilinos_VERSION}") + + STRING(REGEX REPLACE + "^[0-9]+\\.([0-9]+).*$" "\\1" + TRILINOS_VERSION_MINOR "${Trilinos_VERSION}") + + STRING(REGEX REPLACE + "^[0-9]+\\.[0-9]+\\.([0-9]+).*$" "\\1" + TRILINOS_VERSION_SUBMINOR "${Trilinos_VERSION}") + + # + # Determine whether Trilinos was configured with MPI: + # + FIND_FILE(EPETRA_CONFIG_H Epetra_config.h + HINTS ${TRILINOS_INCLUDE_DIRS} + NO_DEFAULT_PATH + NO_CMAKE_ENVIRONMENT_PATH + NO_CMAKE_PATH + NO_SYSTEM_ENVIRONMENT_PATH + NO_CMAKE_SYSTEM_PATH + NO_CMAKE_FIND_ROOT_PATH + ) + FILE(STRINGS "${EPETRA_CONFIG_H}" EPETRA_MPI_STRING + REGEX "#define HAVE_MPI") + IF("${EPETRA_MPI_STRING}" STREQUAL "") + SET(TRILINOS_WITH_MPI FALSE) + ELSE() + SET(TRILINOS_WITH_MPI TRUE) + ENDIF() + + UNSET(EPETRA_CONFIG_H CACHE) + MARK_AS_ADVANCED( TRILINOS_DIR TRILINOS_INCLUDE_DIRS TRILINOS_LIBRARIES ) + ELSE() + IF(TRILINOS_DIR MATCHES "-NOTFOUND") SET(TRILINOS_DIR "" CACHE STRING "A hint to a Trilinos installation" -- 2.39.5