Skip to content
  • Sebastian Holtermann's avatar
    Autogen: Process files concurrently in AUTOMOC and AUTOUIC · a008578d
    Sebastian Holtermann authored
    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.
    
    The AUTOMOC/AUTOUIC generator and the AUTORCC generator are
    refactored to use a libuv loop internally.
    
    Closes #17422.
    a008578d