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
This commit is contained in:
Brad King
2019-11-21 14:38:35 -05:00
parent 52accc779e
commit 19f267c75e
6 changed files with 54 additions and 0 deletions
+5
View File
@@ -0,0 +1,5 @@
xlf-ninja
---------
* The IBM XL Fortran compiler is now supported by the :generator:`Ninja`
generator.