summaryrefslogtreecommitdiff
path: root/Modules/CMakeFortranCompiler.cmake.in
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2019-11-21 14:38:35 -0500
committerBrad King <brad.king@kitware.com>2019-11-21 15:59:12 -0500
commit19f267c75e84b72c4de42570be0c4222bb93aaff (patch)
tree5ffe9d3806b4e39815665da4aa8728267869cbea /Modules/CMakeFortranCompiler.cmake.in
parent52accc779efe350cb9778005a1fb4aeb9b090456 (diff)
downloadcmake-19f267c75e84b72c4de42570be0c4222bb93aaff.tar.gz
XL: Add support for Ninja and XL Fortran
The Ninja generator's support for Fortran requires that source files be preprocessed explicitly first. However, the `xlf` compiler does not have a simple `-E` option or equivalent to do preprocessing. The only documented way to get preprocessed output is to use `-d` to leave it behind, but only at an inflexible location. Instead, create our own `cpp` wrapper script and substitute it for the real preprocessor using `-tF -B ...`. Teach the wrapper to map the `cpp` output to the location we need and then invoke the real `cpp` underneath. Fixes: #19450
Diffstat (limited to 'Modules/CMakeFortranCompiler.cmake.in')
-rw-r--r--Modules/CMakeFortranCompiler.cmake.in1
1 files changed, 1 insertions, 0 deletions
diff --git a/Modules/CMakeFortranCompiler.cmake.in b/Modules/CMakeFortranCompiler.cmake.in
index ae7b73ac4a..34f44aa542 100644
--- a/Modules/CMakeFortranCompiler.cmake.in
+++ b/Modules/CMakeFortranCompiler.cmake.in
@@ -6,6 +6,7 @@ set(CMAKE_Fortran_COMPILER_WRAPPER "@CMAKE_Fortran_COMPILER_WRAPPER@")
set(CMAKE_Fortran_PLATFORM_ID "@CMAKE_Fortran_PLATFORM_ID@")
set(CMAKE_Fortran_SIMULATE_ID "@CMAKE_Fortran_SIMULATE_ID@")
set(CMAKE_Fortran_SIMULATE_VERSION "@CMAKE_Fortran_SIMULATE_VERSION@")
+@_SET_CMAKE_Fortran_XL_CPP@
@_SET_CMAKE_Fortran_COMPILER_ARCHITECTURE_ID@
@SET_MSVC_Fortran_ARCHITECTURE_ID@
set(CMAKE_AR "@CMAKE_AR@")