Skip to content

Parallelize AUTOMOC and AUTOUIC

Sebastian Holtermann requested to merge sebholt/cmake:autogen-parallel into master

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.

Edited by Sebastian Holtermann

Merge request reports