diff options
author | Brad King <brad.king@kitware.com> | 2021-02-18 12:29:03 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2021-02-18 12:35:12 (GMT) |
commit | af074c266e103e7b868db7a6664f056102bf4715 (patch) | |
tree | 703c29e4740cff46d96de58a6976b3b24a212c3f /Modules | |
parent | f4efda4698213d4c4923f2adb80a62123903304c (diff) | |
download | CMake-af074c266e103e7b868db7a6664f056102bf4715.zip CMake-af074c266e103e7b868db7a6664f056102bf4715.tar.gz CMake-af074c266e103e7b868db7a6664f056102bf4715.tar.bz2 |
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
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/Compiler/Intel-Fortran.cmake | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/Modules/Compiler/Intel-Fortran.cmake b/Modules/Compiler/Intel-Fortran.cmake index 71f25f4..9fb6d46 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 "<CMAKE_Fortran_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>") set(CMAKE_Fortran_CREATE_ASSEMBLY_SOURCE "<CMAKE_Fortran_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>") -set(CMAKE_Fortran_PREPROCESS_SOURCE - "<CMAKE_Fortran_COMPILER> -fpp <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>") +if(CMAKE_HOST_WIN32) + # MSVC-like + set(CMAKE_Fortran_PREPROCESS_SOURCE + "<CMAKE_Fortran_COMPILER> -fpp <DEFINES> <INCLUDES> <FLAGS> -P <SOURCE> -Fi<PREPROCESSED_SOURCE>") +else() + # GNU-like + set(CMAKE_Fortran_PREPROCESS_SOURCE + "<CMAKE_Fortran_COMPILER> -fpp <DEFINES> <INCLUDES> <FLAGS> -P <SOURCE> -o <PREPROCESSED_SOURCE>") +endif() + set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-fpp") set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF "-nofpp") |