@@ -153,11 +153,20 @@ elseif ((CMAKE_Fortran_COMPILER_ID STREQUAL "NVHPC") OR (CMAKE_Fortran_COMPILER_
153153        add_compile_options (
154154            $<$<COMPILE_LANGUAGE:Fortran:-minline>
155155        )
156+     elseif  (CMAKE_BUILD_TYPE  STREQUAL  "Debug" )
157+         add_compile_options (
158+             $<$<COMPILE_LANGUAGE:Fortran:-O0>
159+         )
156160    endif ()
157-      
161+ 
158162    if  (CMAKE_BUILD_TYPE  STREQUAL  "Debug" )
159163        add_compile_options (-C -g -O0 -traceback -Mchkptr -Mchkstk -Minform=inform -Mbounds)
160164    endif ()
165+ 
166+     if  (DEFINED  ENV{MFC_CUDA_CC})
167+         string (REGEX  MATCHALL "[0-9]+"  MFC_CUDA_CC $ENV{MFC_CUDA_CC} )
168+         message (STATUS  "Found $MFC_CUDA_CC specified. GPU code will be generated for ${MFC_CUDA_CC} ." )
169+     endif ()
161170endif ()
162171
163172if  (CMAKE_BUILD_TYPE  STREQUAL  "Release" )
@@ -395,13 +404,19 @@ function(MFC_SETUP_TARGET)
395404                target_compile_definitions (${ARGS_TARGET}  PRIVATE  MFC_cuTENSOR)
396405            endif ()
397406
398-             if       ( CMAKE_BUILD_TYPE   STREQUAL   "Release" )
407+             foreach   (cc  ${MFC_CUDA_CC} )
399408                target_compile_options (${ARGS_TARGET} 
400-                     PRIVATE  -gpu=keep,ptxinfo,lineinfo 
409+                     PRIVATE  -gpu=cc ${cc} 
401410                )
402-             elseif  (CMAKE_BUILD_TYPE  STREQUAL  "Debug" )
411+             endforeach ()
412+ 
413+             target_compile_options (${ARGS_TARGET} 
414+                 PRIVATE  -gpu=keep,ptxinfo,lineinfo
415+             )
416+ 
417+             if  (CMAKE_BUILD_TYPE  STREQUAL  "Debug" )
403418                target_compile_options (${ARGS_TARGET} 
404-                     PRIVATE  -gpu=keep,ptxinfo,lineinfo, autocompare,debug -O0 
419+                     PRIVATE  -gpu=autocompare,debug
405420                )
406421            endif ()
407422        endif ()
0 commit comments