Salome HOME
Copyright update 2022
[tools/configuration.git] / cmake / FindSalomeMPI.cmake
1 # Copyright (C) 2013-2022  CEA/DEN, EDF R&D, OPEN CASCADE
2 #
3 # This library is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU Lesser General Public
5 # License as published by the Free Software Foundation; either
6 # version 2.1 of the License, or (at your option) any later version.
7 #
8 # This library is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 # Lesser General Public License for more details.
12 #
13 # You should have received a copy of the GNU Lesser General Public
14 # License along with this library; if not, write to the Free Software
15 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 #
17 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 #
19 # Author: Adrien Bruneton
20 #
21
22 # MPI detection for Salome
23 #
24 #  !! Please read the generic detection procedure in SalomeMacros.cmake !!
25
26
27 SALOME_FIND_PACKAGE_AND_DETECT_CONFLICTS(MPI MPIEXEC 2)
28 MARK_AS_ADVANCED(MPI_EXTRA_LIBRARY MPI_LIBRARY)
29
30 SET(MPI_INCLUDE_DIRS ${MPI_C_INCLUDE_PATH} ${MPI_CXX_INCLUDE_PATH})
31 SET(MPI_LIBRARIES ${MPI_C_LIBRARIES} ${MPI_CXX_LIBRARIES})
32
33 IF(MPI_FOUND) 
34   # Detect if function MPI_Publish_name is provided by the external MPI library 
35   # otherwise take ours.
36   include(CheckSymbolExists)
37   SET(CMAKE_REQUIRED_LIBRARIES ${MPI_LIBRARIES})
38   SET(CMAKE_REQUIRED_INCLUDES ${MPI_C_INCLUDE_PATH})
39   CHECK_SYMBOL_EXISTS(MPI_Publish_name mpi.h MPI2_IS_OK)
40   SET(MPI_DEFINITIONS "${MPI_CXX_COMPILE_FLAGS}")
41   IF(MPI2_IS_OK)
42     MESSAGE(STATUS "Your mpi implementation is compatible with mpi2 ... adding -DHAVE_MPI2")
43     SET(MPI_DEFINITIONS "${MPI_CXX_COMPILE_FLAGS} -DHAVE_MPI2")
44   ENDIF(MPI2_IS_OK)
45
46   SALOME_ACCUMULATE_HEADERS(MPI_INCLUDE_DIRS)
47   SALOME_ACCUMULATE_ENVIRONMENT(LD_LIBRARY_PATH ${MPI_LIBRARIES})
48 ENDIF()