Set the number of threads in a CMake build
Solution 1:
According to the Release Notes, with CMake 3.12 it can be done cross-platform:
The
cmake(1)
Build Tool Mode (cmake –build
) gained--parallel [<jobs>]
and-j [<jobs>]
options to specify a parallel build level. They map to corresponding options of the native build tool.
Solution 2:
You can pass arbitrary arguments to the native build tool with --
. Everything after --
will be passed to the build tool. To pass -j 3
in your example, just use
cmake --build . --config Release -- -j 3
Documentation: https://cmake.org/cmake/help/v3.5/manual/cmake.1.html
You could also use Ninja as a build tool, it uses automatically an appropriate number of threads. Or you can modify the make command by defining CMAKE_MAKE_PROGRAM="make -j 3
. But this is a rather hacky workaround.