[cmake] 셸 명령의 결과로 CMake 변수를 초기화하는 방법

CMake 스크립트의 변수를 셸 명령의 출력으로 설정하는 방법이 있습니까? SET(FOO COMMAND "echo bar")생각 나는 것과 같은



답변

당신은 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 스크립트 내에서 CMake 실행 파일은에서 참조 ${CMAKE_COMMAND}하므로 스크립트는 다음을 수행해야합니다.

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


답변