@@ -4,6 +4,27 @@ set(MPI_DETERMINE_LIBRARY_VERSION true)
44find_package (MPI REQUIRED COMPONENTS C Fortran)
55message (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+
728find_file (mpi_f08_mod NAMES mpi_f08.mod
829NO_DEFAULT_PATH
930HINTS ${MPI_Fortran_INCLUDE_DIRS}
@@ -17,8 +38,8 @@ message(STATUS "MPI_Fortran_MODULE_DIR: ${MPI_Fortran_MODULE_DIR}")
1738message (STATUS "MPI_Fortran_INCLUDE_DIRS: ${MPI_Fortran_INCLUDE_DIRS} " )
1839
1940message (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
2344if (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