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 (closed)