Skip to content

Commit 6e81ea4

Browse files
committed
Bump min. cmake ver. & modernize FindMPI
Some usage of deprecated variables provided in older version of FindMPI were removed, updating them to the new, correct variables. The cmake_minimum_required_version was also bumped along with CMake policies.
1 parent 95f9355 commit 6e81ea4

File tree

3 files changed

+22
-42
lines changed

3 files changed

+22
-42
lines changed

CMakeLists.txt

Lines changed: 8 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
cmake_minimum_required(VERSION 3.10)
1+
cmake_minimum_required(VERSION 3.19)
22

3-
cmake_policy(VERSION 3.10...3.14)
3+
cmake_policy(VERSION 3.19...3.23)
44

55
if(DEFINED ENV{SOURCE_DATE_EPOCH})
66
set(SOURCE_DATE_EPOCH "$ENV{SOURCE_DATE_EPOCH}")
@@ -318,7 +318,7 @@ if ( (NOT MPI_C_FOUND) OR (NOT MPI_Fortran_FOUND) OR (NOT MPIEXEC_EXECUTABLE))
318318
message(WARNING "
319319
MPI_C_FOUND = ${MPI_C_FOUND}
320320
MPI_Fortran_FOUND = ${MPI_Fortran_FOUND}
321-
MPIEXEC = ${MPIEXEC_EXECUTABLE}
321+
MPIEXEC_EXECUTABLE = ${MPIEXEC_EXECUTABLE}
322322
")
323323
execute_process( COMMAND "./install.sh" -P mpich
324324
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
@@ -332,7 +332,7 @@ MPIEXEC = ${MPIEXEC_EXECUTABLE}
332332
set ( MPI_HOME "${MPI_HOME}" "${MY_MPI_EXEC}" "${MY_MPI_EXEC}/.." )
333333
find_package( MPI REQUIRED )
334334
endif()
335-
list(REMOVE_DUPLICATES MPI_Fortran_INCLUDE_PATH)
335+
list(REMOVE_DUPLICATES MPI_Fortran_INCLUDE_DIRS)
336336

337337
# Test for consistent MPI environment but not on windows
338338
if (NOT MPIEXEC_EXECUTABLE)
@@ -344,7 +344,7 @@ else()
344344
add_definitions(-DHAVE_MPI)
345345
endif()
346346
if(NOT WIN32)
347-
get_filename_component(MPIEXEC_RELATIVE_LOC "${MPIEXEC}"
347+
get_filename_component(MPIEXEC_RELATIVE_LOC "${MPIEXEC_EXECUTABLE}"
348348
PROGRAM)
349349
get_filename_component(MPIEXEC_ABS_LOC "${MPIEXEC_RELATIVE_LOC}"
350350
REALPATH)
@@ -448,7 +448,7 @@ endif()
448448
set(OLD_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
449449
set(CMAKE_REQUIRED_FLAGS "-ffree-form" ${MPI_Fortran_COMPILE_OPTIONS} ${MPI_Fortran_COMPILE_DEFINITIONS} ${MPI_Fortran_LINK_FLAGS})
450450
set(OLD_INCLUDES ${CMAKE_REQUIRED_INCLUDES})
451-
set(CMAKE_REQUIRED_INCLUDES ${MPI_Fortran_INCLUDE_PATH})
451+
set(CMAKE_REQUIRED_INCLUDES ${MPI_Fortran_INCLUDE_DIRS})
452452
set(OLD_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
453453
set(CMAKE_REQUIRED_LIBRARIES ${MPI_Fortran_LIBRARIES})
454454
include (CheckFortranSourceCompiles)
@@ -480,7 +480,7 @@ unset(OLD_LIBRARIES)
480480
set(OLD_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
481481
set(CMAKE_REQUIRED_FLAGS "-ffree-form" ${MPI_Fortran_COMPILE_OPTIONS} ${MPI_Fortra_COMPILE_DEFINITIONS} ${MPI_Fortran_LINK_FLAGS})
482482
set(OLD_INCLUDES ${CMAKE_REQUIRED_INCLUDES})
483-
set(CMAKE_REQUIRED_INCLUDES ${MPI_Fortran_INCLUDE_PATH})
483+
set(CMAKE_REQUIRED_INCLUDES ${MPI_Fortran_INCLUDE_DIRS})
484484
set(OLD_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
485485
set(CMAKE_REQUIRED_LIBRARIES ${MPI_Fortran_LIBRARIES})
486486
include (CheckFortranSourceCompiles)
@@ -524,26 +524,6 @@ else()
524524
)
525525
endif()
526526

527-
#----------------
528-
# Setup MPI flags
529-
#----------------
530-
if(NOT CMAKE_C_COMPILE_FLAGS)
531-
set(CMAKE_C_COMPILE_FLAGS "")
532-
endif()
533-
if(NOT CMAKE_C_LINK_FLAGS)
534-
set(CMAKE_C_LINK_FLAGS "")
535-
endif()
536-
if(NOT CMAKE_Fortran_COMPILE_FLAGS)
537-
set(CMAKE_Fortran_COMPILE_FLAGS "")
538-
endif()
539-
if(NOT CMAKE_Fortran_LINK_FLAGS)
540-
set(CMAKE_Fortran_LINK_FLAGS "")
541-
endif()
542-
set(CMAKE_C_COMPILE_FLAGS "${CMAKE_C_COMPILE_FLAGS} ${MPI_C_COMPILE_FLAGS}")
543-
set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} ${MPI_C_LINK_FLAGS}")
544-
set(CMAKE_Fortran_COMPILE_FLAGS "${CMAKE_Fortran_COMPILE_FLAGS} ${MPI_Fortran_COMPILE_FLAGS}")
545-
set(CMAKE_Fortran_LINK_FLAGS "${CMAKE_Fortran_LINK_FLAGS} ${MPI_Fortran_LINK_FLAGS}")
546-
547527
#---------------------------------------------------
548528
# Use standardized GNU install directory conventions
549529
#---------------------------------------------------
@@ -570,7 +550,7 @@ endif()
570550

571551
function(caf_compile_executable target main_depend)
572552
set(includes "")
573-
foreach(includedir ${MPI_Fortran_INCLUDE_PATH})
553+
foreach(includedir ${MPI_Fortran_INCLUDE_DIRS})
574554
list(APPEND includes "-I${includedir}")
575555
endforeach()
576556
string(TOUPPER "${CMAKE_BUILD_TYPE}" build_type)

src/extensions/cafrun.in

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,12 @@ set -o pipefail
5050
# Configured variables
5151
#---------------------
5252
#
53-
# CAF_VERSION, MPIEXEC, MPIEXEC_NUMPROC_FLAG, MPIEXEC_PREFLAGS, MPIEXEC_POSTFLAGS,
53+
# CAF_VERSION, MPIEXEC_EXECUTABLE, MPIEXEC_NUMPROC_FLAG, MPIEXEC_PREFLAGS, MPIEXEC_POSTFLAGS,
5454
# HAVE_FAILED_IMG
5555
#
5656

5757
caf_version='@CAF_VERSION@'
58-
CAFRUN="@MPIEXEC@"
58+
CAFRUN="@MPIEXEC_EXECUTABLE@"
5959
if [[ "${CAFRUN}" == @*@ || -z "${CAFRUN}" ]]; then
6060
CAFRUN=mpiexec
6161
fi

src/mpi/CMakeLists.txt

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ target_link_libraries(opencoarrays_mod
3131
target_link_libraries(opencoarrays_mod
3232
PUBLIC caf_mpi_static)
3333
target_include_directories(opencoarrays_mod PUBLIC
34-
$<$<COMPILE_LANGUAGE:Fortran>:${MPI_Fortran_INCLUDE_PATH}>
34+
$<$<COMPILE_LANGUAGE:Fortran>:${MPI_Fortran_INCLUDE_DIRS}>
3535
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}/${mod_dir_tail}>
3636
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/${mod_dir_tail}>)
3737

@@ -64,11 +64,11 @@ target_link_libraries(caf_mpi_static
6464
PRIVATE gfortran)
6565

6666
target_include_directories(caf_mpi PUBLIC
67-
$<$<COMPILE_LANGUAGE:C>:${MPI_C_INCLUDE_PATH}>
67+
$<$<COMPILE_LANGUAGE:C>:${MPI_C_INCLUDE_DIRS}>
6868
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src>
6969
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
7070
target_include_directories(caf_mpi_static PUBLIC
71-
$<$<COMPILE_LANGUAGE:C>:${MPI_C_INCLUDE_PATH}>
71+
$<$<COMPILE_LANGUAGE:C>:${MPI_C_INCLUDE_DIRS}>
7272
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/src>
7373
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
7474
target_compile_options(caf_mpi
@@ -140,7 +140,7 @@ cmake_host_system_information(RESULT N_CPU QUERY NUMBER_OF_LOGICAL_CORES)
140140
set(N_CPU ${N_CPU} PARENT_SCOPE)
141141
cmake_host_system_information(RESULT HOST_NAME QUERY HOSTNAME)
142142
set(HOST_NAME ${HOST_NAME} PARENT_SCOPE)
143-
execute_process(COMMAND ${MPIEXEC} --version
143+
execute_process(COMMAND ${MPIEXEC_EXECUTABLE} --version
144144
OUTPUT_VARIABLE mpi_version_out)
145145
if (mpi_version_out MATCHES "[Oo]pen[ -][Mm][Pp][Ii]")
146146
message( STATUS "OpenMPI detected")
@@ -217,15 +217,15 @@ set(NEEDED_SYMBOLS MPIX_ERR_PROC_FAILED;MPIX_ERR_REVOKED;MPIX_Comm_failure_ack;M
217217

218218
set(old_cmake_required_includes "${CMAKE_REQUIRED_INCLUDES}")
219219
if(CMAKE_REQUIRED_INCLUDES)
220-
set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${MPI_C_INCLUDE_PATH})
220+
set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${MPI_C_INCLUDE_DIRS})
221221
else()
222-
set(CMAKE_REQUIRED_INCLUDES ${MPI_C_INCLUDE_PATH})
222+
set(CMAKE_REQUIRED_INCLUDES ${MPI_C_INCLUDE_DIRS})
223223
endif()
224224
set(old_cmake_required_flags "${CMAKE_REQUIRED_FLAGS}")
225225
if(CMAKE_REQUIRED_FLAGS)
226-
set(CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS} ${MPI_C_COMPILE_FLAGS} ${MPI_C_LINK_FLAGS})
226+
set(CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS} ${MPI_C_COMPILE_OPTIONS} ${MPI_C_COMPILE_DEFINITIONS} ${MPI_C_LINK_FLAGS})
227227
else()
228-
set(CMAKE_REQUIRED_FLAGS ${MPI_C_COMPILE_FLAGS} ${MPI_C_LINK_FLAGS})
228+
set(CMAKE_REQUIRED_FLAGS ${MPI_C_COMPILE_OPTIONS} ${MPI_C_COMPILE_DEFINITIONS} ${MPI_C_LINK_FLAGS})
229229
endif()
230230
set(old_cmake_required_libraries "${CMAKE_REQUIRED_LIBRARIES}")
231231
if(CMAKE_REQUIRED_LIBRARIES)
@@ -287,9 +287,9 @@ endif()
287287
#---------------------------------------------------
288288
set(old_cmake_required_includes "${CMAKE_REQUIRED_INCLUDES}")
289289
if(CMAKE_REQUIRED_INCLUDES)
290-
set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${MPI_C_INCLUDE_PATH})
290+
set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${MPI_C_INCLUDE_DIRS})
291291
else()
292-
set(CMAKE_REQUIRED_INCLUDES ${MPI_C_INCLUDE_PATH})
292+
set(CMAKE_REQUIRED_INCLUDES ${MPI_C_INCLUDE_DIRS})
293293
endif()
294294
CHECK_INCLUDE_FILES("mpi.h" HAVE_MPI_H)
295295
CHECK_SYMBOL_EXISTS(I_MPI_VERSION "mpi.h" HAVE_Intel_MPI)
@@ -327,7 +327,7 @@ foreach( lflag IN LISTS MPI_Fortran_LINK_FLAGS)
327327
endforeach()
328328
string(STRIP "${CAF_MPI_Fortran_LINK_FLAGS}" CAF_MPI_Fortran_LINK_FLAGS)
329329
set(CAF_MPI_Fortran_COMPILE_FLAGS "")
330-
foreach( fcflag IN LISTS MPI_Fortran_COMPILE_FLAGS)
330+
foreach( fcflag IN LISTS MPI_Fortran_COMPILE_OPTIONS MPI_Fortran_COMPILE_DEFINITIONS)
331331
set(CAF_MPI_Fortran_COMPILE_FLAGS "${CAF_MPI_Fortran_COMPILE_FLAGS} ${fcflag}" )
332332
endforeach()
333333
string(STRIP "${CAF_MPI_Fortran_COMPILE_FLAGS}" CAF_MPI_Fortran_COMPILE_FLAGS)
@@ -343,7 +343,7 @@ configure_file("${CMAKE_SOURCE_DIR}/src/extensions/caf.in" "${CMAKE_BINARY_DIR}/
343343

344344
# List of cafrun.in variables needing configuration:
345345
#
346-
# @CAF_VERSION@ @MPIEXEC@ @MPIEXEC_NUMPROC_FLAG@ @MPIEXEC_PREFLAGS@ @MPIEXEC_POSTFLAGS@
346+
# @CAF_VERSION@ @MPIEXEC_EXECUTABLE@ @MPIEXEC_NUMPROC_FLAG@ @MPIEXEC_PREFLAGS@ @MPIEXEC_POSTFLAGS@
347347
# @HAVE_FAILED_IMG@
348348
#
349349

0 commit comments

Comments
 (0)