Как инициализировать переменную CMake с результатом команды оболочки - программирование
Подтвердить что ты не робот

Как инициализировать переменную CMake с результатом команды оболочки

Есть ли способ установить переменную в CMake script для вывода команды оболочки? Что-то вроде SET(FOO COMMAND "echo bar") придет на ум

4b9b3361

Ответ 1

Вам нужна команда execute_process.


В вашем случае в Windows:

execute_process(COMMAND CMD /c echo bar OUTPUT_VARIABLE FOO)


или на Linux, просто:

execute_process(COMMAND echo bar OUTPUT_VARIABLE FOO)


В этом конкретном случае CMake предлагает кросс-платформенное решение. Сам CMake может использоваться для запуска команд, которые могут использоваться во всех системах, один из которых - echo. Для этого CMake следует передать командной строке arg -E. Для получения полного списка таких команд запустите cmake -E help

Внутри CMake script исполняемый файл CMake называется ${CMAKE_COMMAND}, поэтому script должен выполнить:

execute_process(COMMAND ${CMAKE_COMMAND} -E echo bar OUTPUT_VARIABLE FOO)