Parallelize AUTOMOC and AUTOUIC
This introduces concurrent thread processing in the _autogen
target wich processes AUTOMOC
and AUTOUIC
.
Source file parsing is distributed among the threads by
using a job queue from which the threads pull new parse jobs.
Each thread might start an independent moc
or uic
process.
Altogether this roughly speeds up the AUTOMOC
and AUTOUIC
build
process by the number of physical CPUs on the host system.
The exact number of threads to start in the _autogen
target
is controlled by the new AUTOGEN_PARALLEL
target property which
is initialized by the new CMAKE_AUTOGEN_PARALLEL
variable.
If AUTOGEN_PARALLEL
is empty or unset (which is the default)
the thread count is set to the number of physical CPUs on
the host system.