File tree Expand file tree Collapse file tree 2 files changed +23
-4
lines changed Expand file tree Collapse file tree 2 files changed +23
-4
lines changed Original file line number Diff line number Diff line change @@ -16,7 +16,7 @@ set( FPE_EXIT FALSE )
1616
1717# FORTRAN ILP default
1818set (FOPT_ILP64)
19- if ( CMAKE_Fortran_COMPILER_ID STREQUAL "Intel" )
19+ if ( CMAKE_Fortran_COMPILER_ID MATCHES "Intel" )
2020 if ( WIN32 )
2121 set (FOPT_ILP64 /integer-size:64)
2222 else ()
@@ -31,6 +31,12 @@ elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "NAG" )
3131 else ()
3232 set (FOPT_ILP64 -i8)
3333 endif ()
34+ elseif ( CMAKE_Fortran_COMPILER_ID STREQUAL "NVHPC" )
35+ if ( WIN32 )
36+ set (FOPT_ILP64 /i8)
37+ else ()
38+ set (FOPT_ILP64 -i8)
39+ endif ()
3440else ()
3541 set (CPE_ENV $ENV{PE_ENV} )
3642 if (CPE_ENV STREQUAL "CRAY" )
@@ -52,7 +58,7 @@ if( CMAKE_Fortran_COMPILER_ID STREQUAL "GNU" )
5258 endif ()
5359
5460# Intel Fortran
55- elseif ( CMAKE_Fortran_COMPILER_ID STREQUAL "Intel" )
61+ elseif ( CMAKE_Fortran_COMPILER_ID MATCHES "Intel" )
5662 if ( "${CMAKE_Fortran_FLAGS} " MATCHES "[-/]fpe(-all=|)0" )
5763 set ( FPE_EXIT TRUE )
5864 endif ()
@@ -138,6 +144,17 @@ elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "NAG" )
138144 set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -quiet" )
139145 endif ()
140146
147+ # NVIDIA HPC SDK
148+ elseif ( CMAKE_Fortran_COMPILER_ID STREQUAL "NVHPC" )
149+ if ( ("${CMAKE_Fortran_FLAGS} " MATCHES "-Ktrap=" ) AND
150+ NOT ("${CMAKE_Fortran_FLAGS} " MATCHES "-Ktrap=none" ) )
151+ set ( FPE_EXIT TRUE )
152+ endif ()
153+
154+ if ( NOT ("${CMAKE_Fortran_FLAGS} " MATCHES "[-/]Kieee" ) )
155+ set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Kieee" )
156+ endif ()
157+
141158else ()
142159endif ()
143160
Original file line number Diff line number Diff line change @@ -135,12 +135,14 @@ if(CMAKE_Fortran_COMPILER_ID STREQUAL Flang)
135135 check_fortran_compiler_flag("-Mrecursive" _MrecursiveFlag)
136136elseif (CMAKE_Fortran_COMPILER_ID STREQUAL GNU)
137137 check_fortran_compiler_flag("-frecursive" _frecursiveFlag)
138- elseif (CMAKE_Fortran_COMPILER_ID STREQUAL Intel)
138+ elseif (CMAKE_Fortran_COMPILER_ID MATCHES Intel)
139139 check_fortran_compiler_flag("-recursive" _recursiveFlag)
140140elseif (CMAKE_Fortran_COMPILER_ID STREQUAL XL)
141141 check_fortran_compiler_flag("-qrecur" _qrecurFlag)
142142elseif (CMAKE_Fortran_COMPILER_ID STREQUAL NAG)
143143 check_fortran_compiler_flag("-recursive" _recursiveFlag)
144+ elseif (CMAKE_Fortran_COMPILER_ID STREQUAL NVHPC)
145+ check_fortran_compiler_flag("-Mrecursive" _MrecursiveFlag)
144146else ()
145147 message (WARNING "Fortran local arrays should be allocated on the stack."
146148 " Please use a compiler which guarantees that feature."
@@ -175,7 +177,7 @@ elseif(_qrecurFlag)
175177endif ()
176178
177179if (UNIX )
178- if (CMAKE_Fortran_COMPILER_ID STREQUAL Intel)
180+ if (CMAKE_Fortran_COMPILER_ID MATCHES Intel)
179181 set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fp-model strict" )
180182 endif ()
181183 if (CMAKE_Fortran_COMPILER_ID STREQUAL XL)
You can’t perform that action at this time.
0 commit comments