@@ -22,6 +22,12 @@ if ( FORTRAN_ILP )
2222 else ()
2323 set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -integer-size 64" )
2424 endif ()
25+ elseif ( CMAKE_Fortran_COMPILER_ID STREQUAL "NAG" )
26+ if ( WIN32 )
27+ set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} /i8" )
28+ else ()
29+ set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -i8" )
30+ endif ()
2531 else ()
2632 set (CPE_ENV $ENV{PE_ENV} )
2733 if (CPE_ENV STREQUAL "CRAY" )
@@ -85,6 +91,48 @@ elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "HP" )
8591 CACHE STRING "Flags used by the compiler during release builds" FORCE )
8692 set ( CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS_RELWITHDEBINFO} +O2 -g"
8793 CACHE STRING "Flags used by the compiler during release with debug info builds" FORCE )
94+
95+ # NAG Fortran
96+ elseif ( CMAKE_Fortran_COMPILER_ID STREQUAL "NAG" )
97+ if ( "${CMAKE_Fortran_FLAGS} " MATCHES "[-/]ieee=(stop|nonstd)" )
98+ set ( FPE_EXIT TRUE )
99+ endif ()
100+
101+ if ( NOT ("${CMAKE_Fortran_FLAGS} " MATCHES "[-/]ieee=full" ) )
102+ set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -ieee=full" )
103+ endif ()
104+
105+ if ( NOT ("${CMAKE_Fortran_FLAGS} " MATCHES "[-/]dcfuns" ) )
106+ set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -dcfuns" )
107+ endif ()
108+
109+ if ( NOT ("${CMAKE_Fortran_FLAGS} " MATCHES "[-/]thread_safe" ) )
110+ set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -thread_safe" )
111+ endif ()
112+
113+ # Disable warnings
114+ if ( NOT ("${CMAKE_Fortran_FLAGS} " MATCHES "[-/]w=obs" ) )
115+ set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -w=obs" )
116+ endif ()
117+
118+ if ( NOT ("${CMAKE_Fortran_FLAGS} " MATCHES "[-/]w=x77" ) )
119+ set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -w=x77" )
120+ endif ()
121+
122+ if ( NOT ("${CMAKE_Fortran_FLAGS} " MATCHES "[-/]w=ques" ) )
123+ set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -w=ques" )
124+ endif ()
125+
126+ if ( NOT ("${CMAKE_Fortran_FLAGS} " MATCHES "[-/]w=unused" ) )
127+ set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -w=unused" )
128+ endif ()
129+
130+ # Suppress compiler banner and summary
131+ check_fortran_compiler_flag("-quiet" _quiet)
132+ if ( _quiet AND NOT ("${CMAKE_Fortran_FLAGS} " MATCHES "[-/]quiet" ) )
133+ set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -quiet" )
134+ endif ()
135+
88136else ()
89137endif ()
90138
0 commit comments