Back to Cmake

JOB_POOLS

Help/prop_gbl/JOB_POOLS.rst

4.3.21.3 KB
Original Source

JOB_POOLS

Ninja only: List of available pools.

A pool is a named integer property and defines the maximum number of concurrent jobs which can be started by a rule assigned to the pool. The JOB_POOLS property is a semicolon-separated list of pairs using the syntax NAME=integer (without a space after the equality sign).

For instance:

.. code-block:: cmake

set_property(GLOBAL PROPERTY JOB_POOLS two_jobs=2 ten_jobs=10)

Defined pools can be used at different levels:

  • Globally, by setting :variable:CMAKE_JOB_POOL_COMPILE and :variable:CMAKE_JOB_POOL_LINK.
  • Per target, by setting the target properties :prop_tgt:JOB_POOL_COMPILE and :prop_tgt:JOB_POOL_LINK.
  • :command:Custom commands <add_custom_command> and :command:custom targets <add_custom_target> can specify pools using the option JOB_POOL.
  • Per-source, by setting the source file property :prop_sf:JOB_POOL_COMPILE, in case some specific source files require to override their global or target assigned pool.

Using a pool that is not defined by JOB_POOLS causes an error by ninja at build time.

If not set, this property uses the value of the :variable:CMAKE_JOB_POOLS variable.

Build targets provided by CMake that are meant for individual interactive use, such as install, are placed in the console pool automatically.