mirror of
https://github.com/Kitware/CMake.git
synced 2025-12-31 10:50:16 -06:00
PCH: Do not enable GNU or Intel PCH settings for Fortran
The PCH settings are shared by C and CXX languages but do not make sense for Fortran. In particular, `CMAKE_PCH_EXTENSION` should not be set because it can overwrite the value set for C/C++ languages, which may have a different compiler vendor than the Fortran compiler. Fixes: #20752
This commit is contained in:
@@ -110,10 +110,12 @@ macro(__compiler_gnu lang)
|
||||
endif()
|
||||
list(APPEND CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND "-dM" "-E" "-c" "${CMAKE_ROOT}/Modules/CMakeCXXCompilerABI.cpp")
|
||||
|
||||
set(CMAKE_PCH_EXTENSION .gch)
|
||||
if (NOT CMAKE_GENERATOR MATCHES "Xcode")
|
||||
set(CMAKE_PCH_PROLOGUE "#pragma GCC system_header")
|
||||
if(NOT "x${lang}" STREQUAL "xFortran")
|
||||
set(CMAKE_PCH_EXTENSION .gch)
|
||||
if (NOT CMAKE_GENERATOR MATCHES "Xcode")
|
||||
set(CMAKE_PCH_PROLOGUE "#pragma GCC system_header")
|
||||
endif()
|
||||
set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH -Winvalid-pch -include <PCH_HEADER>)
|
||||
set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH -Winvalid-pch -x ${__pch_header_${lang}} -include <PCH_HEADER>)
|
||||
endif()
|
||||
set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH -Winvalid-pch -include <PCH_HEADER>)
|
||||
set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH -Winvalid-pch -x ${__pch_header_${lang}} -include <PCH_HEADER>)
|
||||
endmacro()
|
||||
|
||||
@@ -33,11 +33,13 @@ else()
|
||||
endif()
|
||||
list(APPEND CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND "-QdM" "-P" "-Za" "${CMAKE_ROOT}/Modules/CMakeCXXCompilerABI.cpp")
|
||||
|
||||
# Precompile Headers
|
||||
set(CMAKE_PCH_EXTENSION .pchi)
|
||||
set(CMAKE_LINK_PCH ON)
|
||||
set(CMAKE_PCH_EPILOGUE "#pragma hdrstop")
|
||||
set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH -Winvalid-pch -Wno-pch-messages -pch-use <PCH_FILE> -include <PCH_HEADER>)
|
||||
set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH -Winvalid-pch -Wno-pch-messages -pch-create <PCH_FILE> -include <PCH_HEADER>)
|
||||
if(NOT "x${lang}" STREQUAL "xFortran")
|
||||
# Precompile Headers
|
||||
set(CMAKE_PCH_EXTENSION .pchi)
|
||||
set(CMAKE_LINK_PCH ON)
|
||||
set(CMAKE_PCH_EPILOGUE "#pragma hdrstop")
|
||||
set(CMAKE_${lang}_COMPILE_OPTIONS_USE_PCH -Winvalid-pch -Wno-pch-messages -pch-use <PCH_FILE> -include <PCH_HEADER>)
|
||||
set(CMAKE_${lang}_COMPILE_OPTIONS_CREATE_PCH -Winvalid-pch -Wno-pch-messages -pch-create <PCH_FILE> -include <PCH_HEADER>)
|
||||
endif()
|
||||
endmacro()
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user