From 419c89bcdf6795891005b96e5fd4f077ddbae489 Mon Sep 17 00:00:00 2001 From: Ye Luo Date: Sat, 17 Oct 2020 14:20:12 -0500 Subject: [PATCH] Use cpp as the preprocessor for headers. --- CMakeLists.txt | 4 +++- cmake/NVFortranCompiler.cmake | 2 ++ cmake/qeHelpers.cmake | 7 +++---- 3 files changed, 8 insertions(+), 5 deletions(-) create mode 100644 cmake/NVFortranCompiler.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 64bb7ac1b..4414552d9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -162,10 +162,12 @@ if(QE_ENABLE_OPENMP) endif(QE_ENABLE_OPENMP) ############################################################ -## Compiler specific options +## Compiler vendor specific options ############################################################ if(CMAKE_Fortran_COMPILER_ID MATCHES "GNU") include(${PROJECT_CMAKE}/GNUFortranCompiler.cmake) +elseif(CMAKE_Fortran_COMPILER_ID MATCHES "PGI") + include(${PROJECT_CMAKE}/NVFortranCompiler.cmake) endif() ############################################################ diff --git a/cmake/NVFortranCompiler.cmake b/cmake/NVFortranCompiler.cmake new file mode 100644 index 000000000..9bc1d2394 --- /dev/null +++ b/cmake/NVFortranCompiler.cmake @@ -0,0 +1,2 @@ +# set optimization specific flags +set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Mcache_align -Mlarge_arrays") diff --git a/cmake/qeHelpers.cmake b/cmake/qeHelpers.cmake index 0fe1a0b5e..31b372062 100644 --- a/cmake/qeHelpers.cmake +++ b/cmake/qeHelpers.cmake @@ -22,8 +22,8 @@ function(qe_get_global_compile_definitions OUTVAR) endfunction(qe_get_global_compile_definitions) function(qe_get_fortran_cpp_flag OUTVAR) - if(CMAKE_Fortran_COMPILER_ID STREQUAL "PGI") - set(${OUTVAR} "-Mpreprocess" PARENT_SCOPE) # :'( + if(DEFINED QE_Fortran_PREPROCESSOR_FLAGS) + set(${OUTVAR} "${QE_Fortran_PREPROCESSOR_FLAGS}" PARENT_SCOPE) else() # TODO actual flag check set(${OUTVAR} "-cpp" PARENT_SCOPE) @@ -31,7 +31,6 @@ function(qe_get_fortran_cpp_flag OUTVAR) endfunction(qe_get_fortran_cpp_flag) function(qe_preprocess_source IN OUT) - qe_get_fortran_cpp_flag(f_cpp_flag) qe_get_global_compile_definitions(global_defs) foreach(DEF ${global_defs}) list(APPEND global_flags "-D${DEF}") @@ -42,7 +41,7 @@ function(qe_preprocess_source IN OUT) endif() add_custom_command( OUTPUT ${OUT} - COMMAND "${CMAKE_Fortran_COMPILER}" ${f_cpp_flag} ${global_flags} -E ${IN} > ${OUT} + COMMAND cpp ${global_flags} -E ${IN} > ${OUT} MAIN_DEPENDENCY ${IN} COMMENT "Preprocessing ${IN}" VERBATIM)