mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-16 20:21:41 -06:00
NVHPC: only use '-MD' for the C and CXX languages
CMake shouldn't use '-MD' for nvfortran to generate dependency information. Fixes #22723
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user