Set the number of threads in a CMake build

Cmake

Cmake Problem Overview


cmake --build . --config Release

Is it possible to set the number of cores to be used by the build process?

I'm looking for something similar to GNU make's -j option.

Cmake Solutions


Solution 1 - Cmake

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 - Cmake

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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionKonstantin BurlachenkoView Question on Stackoverflow
Solution 1 - Cmakeusr1234567View Answer on Stackoverflow
Solution 2 - Cmakeusr1234567View Answer on Stackoverflow