Salome HOME
Synchronize adm files
authorMaintenance team (INV) <mnt@opencascade.com>
Tue, 10 Feb 2015 18:35:20 +0000 (21:35 +0300)
committerMaintenance team (INV) <mnt@opencascade.com>
Tue, 10 Feb 2015 18:35:20 +0000 (21:35 +0300)
adm_local_without_kernel/cmake_files/FindSalomeMPI.cmake

index d2538862cde0ef4160491d5ed3308c114d0e7460..9eee1cf0b0e85e846d0e9fb70f2693ceca6e7353 100644 (file)
@@ -31,6 +31,17 @@ SET(MPI_INCLUDE_DIRS ${MPI_C_INCLUDE_PATH} ${MPI_CXX_INCLUDE_PATH})
 SET(MPI_LIBRARIES ${MPI_C_LIBRARIES} ${MPI_CXX_LIBRARIES})
 
 IF(MPI_FOUND) 
+  # Detect if function MPI_Publish_name is provided by the external MPI library 
+  # otherwise take ours.
+  include(CheckSymbolExists)
+  SET(CMAKE_REQUIRED_LIBRARIES ${MPI_LIBRARIES})
+  CHECK_SYMBOL_EXISTS(MPI_Publish_name ${MPI_C_INCLUDE_PATH}/mpi.h MPI2_IS_OK)
+  SET(MPI_DEFINITIONS "${MPI_CXX_COMPILE_FLAGS}")
+  IF(MPI2_IS_OK)
+    MESSAGE(STATUS "Your mpi implementation is compatible with mpi2 ... adding -DHAVE_MPI2")
+    SET(MPI_DEFINITIONS "${MPI_CXX_COMPILE_FLAGS} -DHAVE_MPI2")
+  ENDIF(MPI2_IS_OK)
+
   SALOME_ACCUMULATE_HEADERS(MPI_INCLUDE_DIRS)
   SALOME_ACCUMULATE_ENVIRONMENT(LD_LIBRARY_PATH ${MPI_LIBRARIES})
 ENDIF()