This should be done in parallel.  See `ProjectCompiler` for an example.