]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Move test for TRILINOS_WITH_MPI to FindTRILINOS.cmake, change test to query Epetra_co...
authormaier <maier@0785d39b-7218-0410-832d-ea1e28bc413d>
Sun, 4 Nov 2012 19:13:53 +0000 (19:13 +0000)
committermaier <maier@0785d39b-7218-0410-832d-ea1e28bc413d>
Sun, 4 Nov 2012 19:13:53 +0000 (19:13 +0000)
git-svn-id: https://svn.dealii.org/branches/branch_cmake@27350 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/cmake/configure/configure_trilinos.cmake
deal.II/cmake/modules/FindTRILINOS.cmake

index 5c974e70c8a07c40e895c8fe2f49aac24594bff8..0783c48c9d0acad0333805fbcfae4a702a6856a3 100644 (file)
@@ -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))
index c43ebf07181a1f3cea22e00d0276af3fb0ce4065..3b44f196759395c8a825145ff7b1f93b02268c1d 100644 (file)
@@ -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"

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.