Есть ли способ установить переменную в CMake script для вывода команды оболочки?
Что-то вроде SET(FOO COMMAND "echo bar")
придет на ум
Как инициализировать переменную CMake с результатом команды оболочки
Ответ 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)