Browse Source

Merge topic 'corret_nvhpc_fortran_compile_deps' into release-3.21

1a828043b7 NVHPC: only use '-MD' for the C and CXX languages

Acked-by: Kitware Robot <[email protected]>
Merge-request: !6602
Brad King 4 years ago
parent
commit
2104c198bd
3 changed files with 21 additions and 12 deletions
  1. 11 0
      Modules/Compiler/NVHPC-C.cmake
  2. 10 0
      Modules/Compiler/NVHPC-CXX.cmake
  3. 0 12
      Modules/Compiler/NVHPC.cmake

+ 11 - 0
Modules/Compiler/NVHPC-C.cmake

@@ -9,4 +9,15 @@ if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 20.11)
   set(CMAKE_C17_EXTENSION_COMPILE_OPTION -std=gnu17)
 endif()
 
+if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 21.07)
+  set(CMAKE_DEPFILE_FLAGS_C "-MD -MT <DEP_TARGET> -MF <DEP_FILE>")
+  set(CMAKE_C_DEPFILE_FORMAT gcc)
+  set(CMAKE_C_DEPENDS_USE_COMPILER TRUE)
+else()
+  # Before NVHPC 21.07 the `-MD` flag implicitly
+  # implies `-E` and therefore compilation and dependency generation
+  # can't occur in the same invocation
+  set(CMAKE_C_DEPENDS_EXTRA_COMMANDS "<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -x c -M <SOURCE> -MT <OBJECT> -MD<DEP_FILE>")
+endif()
+
 __compiler_nvhpc(C)

+ 10 - 0
Modules/Compiler/NVHPC-CXX.cmake

@@ -9,4 +9,14 @@ if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 20.11)
   set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION -std=gnu++20)
 endif()
 
+if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 21.07)
+  set(CMAKE_DEPFILE_FLAGS_CXX "-MD -MT <DEP_TARGET> -MF <DEP_FILE>")
+  set(CMAKE_CXX_DEPFILE_FORMAT gcc)
+  set(CMAKE_CXX_DEPENDS_USE_COMPILER TRUE)
+else()
+  # Before NVHPC 21.07 the `-MD` flag implicitly
+  # implies `-E` and therefore compilation and dependency generation
+  # can't occur in the same invocation
+  set(CMAKE_CXX_DEPENDS_EXTRA_COMMANDS "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -x c++ -M <SOURCE> -MT <OBJECT> -MD<DEP_FILE>")
+endif()
 __compiler_nvhpc(CXX)

+ 0 - 12
Modules/Compiler/NVHPC.cmake

@@ -12,16 +12,4 @@ include(Compiler/PGI)
 
 macro(__compiler_nvhpc lang)
   # Logic specific to NVHPC.
-
-  if(CMAKE_${lang}_COMPILER_VERSION VERSION_GREATER_EQUAL 21.07)
-    set(CMAKE_DEPFILE_FLAGS_${lang} "-MD -MT <DEP_TARGET> -MF <DEP_FILE>")
-    set(CMAKE_${lang}_DEPFILE_FORMAT gcc)
-    set(CMAKE_${lang}_DEPENDS_USE_COMPILER TRUE)
-  else()
-    # Before NVHPC 21.07 the `-MD` flag implicitly
-    # implies `-E` and therefore compilation and dependency generation
-    # can't occur in the same invocation
-    set(CMAKE_${lang}_DEPENDS_EXTRA_COMMANDS "<CMAKE_${lang}_COMPILER> <DEFINES> <INCLUDES> <FLAGS> ${CMAKE_${lang}_COMPILE_OPTIONS_EXPLICIT_LANGUAGE} -M <SOURCE> -MT <OBJECT> -MD<DEP_FILE>")
-  endif()
-
 endmacro()