- if(NOT APPLE) # smpi is enabled by default
- # Call enable_language(Fortran) in order to load the build rules for this language, needed by
- # teshsuite/smpi/mpich-test/. Use CMAKE_FORCE_Fortran_COMPILER to bypass checks for a working compiler (smpiff
- # doesn't exist at configure time).
- include(CMakeForceCompiler)
- if(NOT COMMAND CMAKE_FORCE_Fortran_COMPILER)
- MACRO(CMAKE_FORCE_Fortran_COMPILER compiler id)
- SET(CMAKE_Fortran_COMPILER "${compiler}")
- SET(CMAKE_Fortran_COMPILER_ID_RUN TRUE)
- SET(CMAKE_Fortran_COMPILER_ID ${id})
- SET(CMAKE_Fortran_COMPILER_WORKS TRUE)
- SET(CMAKE_Fortran_COMPILER_FORCED TRUE)
-
- # Set old compiler id variables.
- IF("${CMAKE_Fortran_COMPILER_ID}" MATCHES "GNU")
- SET(CMAKE_COMPILER_IS_GNUG77 1)
- ENDIF("${CMAKE_Fortran_COMPILER_ID}" MATCHES "GNU")
- ENDMACRO(CMAKE_FORCE_Fortran_COMPILER)
- endif()
- CMAKE_FORCE_Fortran_COMPILER(smpiff smpiff)
- enable_language(Fortran OPTIONAL)
- endif()
+ if(CMAKE_Fortran_COMPILER)
+ # Fortran compiler detected: save it, then replace by smpiff
+ set(SMPI_Fortran_COMPILER "${CMAKE_Fortran_COMPILER}" CACHE FILEPATH "The real Fortran compiler")
+ set(CMAKE_Fortran_COMPILER smpiff)
+
+ # Set flags/libs to be used in smpiff
+ if(CMAKE_Fortran_COMPILER_ID MATCHES "GNU")
+ set(SMPI_Fortran_FLAGS "\"-fpic\" \"-ff2c\" \"-fno-second-underscore\"")
+ set(SMPI_Fortran_LIBS "\"-lgfortran\"")
+ elseif(CMAKE_Fortran_COMPILER_ID MATCHES "Intel")
+ set(SMPI_Fortran_FLAGS "\"-fPIC\" \"-nofor-main\"")
+ set(SMPI_Fortran_LIBS "\"-lifcore\"")
+ elseif(CMAKE_Fortran_COMPILER_ID MATCHES "PGI") # flang
+ set(SMPI_Fortran_FLAGS "\"-fPIC\"")
+ set(SMPI_Fortran_LIBS "")
+ endif()
+
+ set(SMPI_FORTRAN 1)
+ endif(CMAKE_Fortran_COMPILER)
+