Подтвердить что ты не робот

Установите количество потоков в сборке CMake из командной строки

cmake --build . --config Release

Можно ли установить количество ядер, которые будут использоваться в процессе сборки?

Я ищу что-то похожее на GNU make -j.

4b9b3361

Ответ 1

Согласно примечаниям к выпуску, с CMake 3.12 это можно сделать кроссплатформенным:

В cmake(1) Режим инструмента сборки (cmake –build) cmake –build --parallel [<jobs>] и -j [<jobs>] для указания уровня параллельной сборки. Они сопоставляются с соответствующими параметрами родного инструмента сборки.

Ответ 2

Вы можете передать произвольные аргументы в собственный инструмент построения с помощью --. Все после -- будет передано инструменту построения. Чтобы передать -j 3 в вашем примере, просто используйте

cmake --build . --config Release -- -j 3

Документация: https://cmake.org/cmake/help/v3.5/manual/cmake.1.html

Вы также можете использовать Ninja в качестве инструмента построения, он автоматически использует соответствующее количество потоков. Или вы можете изменить команду make, указав CMAKE_MAKE_PROGRAM="make -j 3. Но это довольно хакерское решение.