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
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
Fixes: #19450 (closed)