Clang and GCC (and maybe MSVC?) are using a two-step compile for their modules implementation at the moment: