Salome HOME
Add the -DWITHOUT_MPI=1 possibility
[modules/kernel.git] / salome_adm / cmake_files / FindMPI.cmake
index 548b01b772c0d6b1b0bec59069baeb31f3c795d0..50b53bd9f00c274620ab69c73096f0077f731945 100644 (file)
@@ -24,6 +24,10 @@ MESSAGE(STATUS "Check for MPI ...")
 # ------
 
 SET(MPI_STATUS 1)
+IF(WITHOUT_MPI OR WITH_MPI STREQUAL 0)
+  SET(MPI_STATUS 0)
+  MESSAGE(STATUS "mpi disabled from command line.")
+ENDIF(WITHOUT_MPI OR WITH_MPI STREQUAL 0)
 
 IF(WITH_MPI)
   SET(MPI_ROOT_USER ${WITH_MPI})
@@ -80,6 +84,7 @@ IF(MPI_STATUS)
   
   MESSAGE(STATUS "MPI include ${MPI_INCLUDE_TO_FIND} found in ${MPI_INCLUDES}")
 
+  SET(MPI_INCLUDE_DIR ${MPI_INCLUDES})
   SET(MPI_INCLUDES -I${MPI_INCLUDES})
   
   # ------
@@ -91,9 +96,13 @@ IF(MPI_STATUS)
     FOREACH(lib mpi_cxx mpi mpich)
       FIND_LIBRARY(MPI_LIB ${lib} ${MPI_ROOT}/lib)
       IF(MPI_LIB)
+       IF(lib STREQUAL mpi_cxx)
+         SET(MPI_INCLUDES ${MPI_INCLUDES} -DOMPI_IGNORE_CXX_SEEK)
+       ENDIF(lib STREQUAL mpi_cxx)
        IF(lib STREQUAL mpich)
          SET(MPI_INCLUDES ${MPI_INCLUDES} -DMPICH_IGNORE_CXX_SEEK)
        ENDIF(lib STREQUAL mpich)
+       BREAK()
       ENDIF(MPI_LIB)
     ENDFOREACH(lib mpi_cxx mpi mpich)
     IF(NOT MPI_LIB)
@@ -110,6 +119,18 @@ ENDIF(MPI_STATUS)
   
 # ------
 
+IF(MPI_STATUS)
+  include(CheckSymbolExists)
+  SET(CMAKE_REQUIRED_LIBRARIES ${MPI_LIBS})
+  CHECK_SYMBOL_EXISTS(MPI_Publish_name ${MPI_INCLUDE_DIR}/mpi.h MPI2_IS_OK)
+  IF(MPI2_IS_OK)
+    MESSAGE(STATUS "Your mpi implemtentation is compatible with mpi2 ... adding -DHAVE_MPI2")
+    SET(MPI_INCLUDES ${MPI_INCLUDES} -DHAVE_MPI2)
+  ENDIF(MPI2_IS_OK)
+ENDIF(MPI_STATUS)
+
+# ------
+
 IF(MPI_STATUS)
   SET(MPI_IS_OK ON)
 ELSE(MPI_STATUS)