Skip to content

Commit abd921c

Browse files
committed
More FindMPI and try_compile() CMake modernization
A bunch of the variable manipulation should be abstracted as a function.
1 parent a426966 commit abd921c

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

CMakeLists.txt

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,9 @@ endif()
139139
if(NOT CMAKE_REQUIRED_FLAGS)
140140
set(CMAKE_REQUIRED_FLAGS "")
141141
endif()
142+
if(NOT CMAKE_REQUIRED_DEFINITIONS)
143+
set(CMAKE_REQUIRED_DEFINITIONS "")
144+
endif()
142145
if(NOT CMAKE_REQUIRED_LIBRARIES)
143146
set(CMAKE_REQUIRED_LIBRARIES "")
144147
endif()
@@ -403,7 +406,9 @@ endif()
403406
# Make sure a simple "hello world" C mpi program compiles
404407
#--------------------------------------------------------
405408
set(OLD_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
406-
set(CMAKE_REQUIRED_FLAGS ${MPI_C_COMPILE_OPTIONS} ${MPI_C_COMPILE_DEFINITIONS} ${MPI_C_LINK_FLAGS})
409+
set(CMAKE_REQUIRED_FLAGS ${MPI_C_COMPILE_OPTIONS} ${MPI_C_LINK_FLAGS})
410+
set(OLD_REQUIRED_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS})
411+
set(CMAKE_REQUIRED_DEFINITIONS ${MPI_C_COMPILE_DEFINITIONS})
407412
set(OLD_INCLUDES ${CMAKE_REQUIRED_INCLUDES})
408413
set(CMAKE_REQUIRED_INCLUDES ${MPI_C_INCLUDE_DIRS})
409414
set(OLD_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
@@ -427,6 +432,7 @@ int main(int argc, char** argv) {
427432
}"
428433
MPI_C_COMPILES)
429434
set(CMAKE_REQUIRED_FLAGS ${OLD_REQUIRED_FLAGS})
435+
set(CMAKE_REQUIRED_DEFINITIONS ${OLD_REQUIRED_DEFINITIONS})
430436
set(CMAKE_REQUIRED_INCLUDES ${OLD_INCLUDES})
431437
set(CMAKE_REQUIRED_LIBRARIES ${OLD_LIBRARIES})
432438
unset(OLD_REQUIRED_FLAGS)
@@ -446,7 +452,9 @@ endif()
446452
# Try using mpi.mod first then fall back on includ 'mpif.h'
447453
#--------------------------------------------------------------
448454
set(OLD_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
449-
set(CMAKE_REQUIRED_FLAGS "-ffree-form" ${MPI_Fortran_COMPILE_OPTIONS} ${MPI_Fortran_COMPILE_DEFINITIONS} ${MPI_Fortran_LINK_FLAGS})
455+
set(CMAKE_REQUIRED_FLAGS "-ffree-form" ${MPI_Fortran_COMPILE_OPTIONS} ${MPI_Fortran_LINK_FLAGS})
456+
set(OLD_REQUIRED_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS})
457+
set(CMAKE_REQUIRED_DEFINITIONS ${MPI_Fortran_COMPILE_DEFINITIONS})
450458
set(OLD_INCLUDES ${CMAKE_REQUIRED_INCLUDES})
451459
set(CMAKE_REQUIRED_INCLUDES ${MPI_Fortran_INCLUDE_DIRS})
452460
set(OLD_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
@@ -468,6 +476,7 @@ end program
468476
"
469477
MPI_Fortran_MODULE_COMPILES)
470478
set(CMAKE_REQUIRED_FLAGS ${OLD_REQUIRED_FLAGS})
479+
set(CMAKE_REQUIRED_DEFINITIONS ${OLD_REQUIRED_DEFINITIONS})
471480
set(CMAKE_REQUIRED_INCLUDES ${OLD_INCLUDES})
472481
set(CMAKE_REQUIRED_LIBRARIES ${OLD_LIBRARIES})
473482
unset(OLD_REQUIRED_FLAGS)
@@ -478,7 +487,9 @@ unset(OLD_LIBRARIES)
478487
# If that failed try using mpif.h
479488
#--------------------------------
480489
set(OLD_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
481-
set(CMAKE_REQUIRED_FLAGS "-ffree-form" ${MPI_Fortran_COMPILE_OPTIONS} ${MPI_Fortra_COMPILE_DEFINITIONS} ${MPI_Fortran_LINK_FLAGS})
490+
set(CMAKE_REQUIRED_FLAGS "-ffree-form" ${MPI_Fortran_COMPILE_OPTIONS} ${MPI_Fortran_LINK_FLAGS})
491+
set(OLD_REQUIRED_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS})
492+
set(CMAKE_REQUIRED_DEFINITIONS ${MPI_Fortra_COMPILE_DEFINITIONS})
482493
set(OLD_INCLUDES ${CMAKE_REQUIRED_INCLUDES})
483494
set(CMAKE_REQUIRED_INCLUDES ${MPI_Fortran_INCLUDE_DIRS})
484495
set(OLD_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
@@ -500,6 +511,7 @@ end program
500511
"
501512
MPI_Fortran_INCLUDE_COMPILES)
502513
set(CMAKE_REQUIRED_FLAGS ${OLD_REQUIRED_FLAGS})
514+
set(CMAKE_REQUIRED_DEFINITIONS ${OLD_REQUIRED_DEFINITIONS})
503515
set(CMAKE_REQUIRED_INCLUDES ${OLD_INCLUDES})
504516
set(CMAKE_REQUIRED_LIBRARIES ${OLD_LIBRARIES})
505517
unset(OLD_REQUIRED_FLAGS)

src/mpi/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
if(NOT CMAKE_REQUIRED_FLAGS)
33
set(CMAKE_REQUIRED_FLAGS "")
44
endif()
5+
if(NOT CMAKE_REQUIRED_DEFINITIONS)
6+
set(CMAKE_REQUIRED_DEFINITIONS "")
7+
endif()
58
if(NOT CMAKE_REQUIRED_LIBRARIES)
69
set(CMAKE_REQUIRED_LIBRARIES "")
710
endif()

0 commit comments

Comments
 (0)