From af074c266e103e7b868db7a6664f056102bf4715 Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 18 Feb 2021 07:29:03 -0500 Subject: Intel: Make explicit Fortran preprocessing under Ninja more robust Tell the Fortran compiler to write preprocessor output directly to a file, as we do for the GNU compiler. The previous "redirect stdout" approach could break during ABI detection with some `mpif90` wrappers that add version information to stdout when called with `-v`. Fixes: #21828 --- Modules/Compiler/Intel-Fortran.cmake | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Modules/Compiler/Intel-Fortran.cmake b/Modules/Compiler/Intel-Fortran.cmake index 71f25f43f9..9fb6d46c3e 100644 --- a/Modules/Compiler/Intel-Fortran.cmake +++ b/Modules/Compiler/Intel-Fortran.cmake @@ -13,7 +13,15 @@ set(CMAKE_Fortran_COMPILE_WITH_DEFINES 1) set(CMAKE_Fortran_CREATE_PREPROCESSED_SOURCE " -E > ") set(CMAKE_Fortran_CREATE_ASSEMBLY_SOURCE " -S -o ") -set(CMAKE_Fortran_PREPROCESS_SOURCE - " -fpp -E > ") +if(CMAKE_HOST_WIN32) + # MSVC-like + set(CMAKE_Fortran_PREPROCESS_SOURCE + " -fpp -P -Fi") +else() + # GNU-like + set(CMAKE_Fortran_PREPROCESS_SOURCE + " -fpp -P -o ") +endif() + set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-fpp") set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF "-nofpp") -- cgit v1.2.1