Skip to content

Commit 9cebb0e

Browse files
committed
FindMPI: cray workaround [skip ci]
1 parent 508b47e commit 9cebb0e

File tree

1 file changed

+23
-2
lines changed

1 file changed

+23
-2
lines changed

cmake/mpi.cmake

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,27 @@ set(MPI_DETERMINE_LIBRARY_VERSION true)
44
find_package(MPI REQUIRED COMPONENTS C Fortran)
55
message(STATUS "MPI Library Version: ${MPI_C_LIBRARY_VERSION_STRING}")
66

7+
# Cray FindMPI.cmake has a bug where the plain CMake variables aren't defined, only imported target is
8+
# as a workaround for the many versions of CMake where this is so, we populate them ourselves.
9+
10+
if(NOT MPI_Fortran_INCLUDE_DIRS)
11+
get_property(MPI_Fortran_INCLUDE_DIRS TARGET MPI::MPI_Fortran PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
12+
message(STATUS "workaround: MPI_Fortran_INCLUDE_DIRS: ${MPI_Fortran_INCLUDE_DIRS}")
13+
endif()
14+
if(NOT MPI_C_INCLUDE_DIRS)
15+
get_property(MPI_C_INCLUDE_DIRS TARGET MPI::MPI_C PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
16+
message(STATUS "workaround: MPI_C_INCLUDE_DIRS: ${MPI_C_INCLUDE_DIRS}")
17+
endif()
18+
if(NOT MPI_Fortran_COMPILE_OPTIONS)
19+
get_property(MPI_Fortran_COMPILE_OPTIONS TARGET MPI::MPI_Fortran PROPERTY INTERFACE_COMPILE_OPTIONS)
20+
endif()
21+
if(NOT MPI_Fortran_COMPILE_DEFINITIONS)
22+
get_property(MPI_Fortran_COMPILE_DEFINITIONS TARGET MPI::MPI_Fortran PROPERTY INTERFACE_COMPILE_DEFINITIONS)
23+
endif()
24+
if(NOT MPI_Fortran_LINK_FLAGS)
25+
get_property(MPI_Fortran_LINK_FLAGS TARGET MPI::MPI_Fortran PROPERTY INTERFACE_LINK_OPTIONS)
26+
endif()
27+
728
find_file(mpi_f08_mod NAMES mpi_f08.mod
829
NO_DEFAULT_PATH
930
HINTS ${MPI_Fortran_INCLUDE_DIRS}
@@ -17,8 +38,8 @@ message(STATUS "MPI_Fortran_MODULE_DIR: ${MPI_Fortran_MODULE_DIR}")
1738
message(STATUS "MPI_Fortran_INCLUDE_DIRS: ${MPI_Fortran_INCLUDE_DIRS}")
1839

1940
message(STATUS "MPI_f08 module: ${mpi_f08_mod}")
20-
message(STATUS "MPI compile flags: ${MPI_Fortran_COMPILER_FLAGS}")
21-
message(STATUS "MPI link flags: ${MPI_Fortran_LINK_FLAGS}")
41+
message(STATUS "MPI_Fortran_COMPILE_OPTIONS: ${MPI_Fortran_COMPILE_OPTIONS}")
42+
message(STATUS "MPI_Fortran_LINK_FLAGS: ${MPI_Fortran_LINK_FLAGS}")
2243

2344
if(NOT mpi_f08_mod)
2445
message(WARNING "Fortran MPI ${MPI_Fortran_VERSION} doesn't have MPI-3 Fortran mpi_f08.mod, searched using ${MPI_Fortran_INCLUDE_DIRS}")

0 commit comments

Comments
 (0)