Есть ли способ установить переменную в 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)