Pass preprocessor options to C compiler when building foreign C files (#16737)
This addresses #16737 (closed), the new test passed.
We may even want to run another phase that call doCpp
for external C/C++ files in the future.
But this is likely to be a much bigger change which introduces more phases,
so I'd like to get some input before I spend too much time on this, if we decide to do so.