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)
OUTPUT_STRIP_TRAILING_WHITESPACE
는 다소 필요합니다 IMO
COMMAND bash "-c" "your_complex.sh | command && stuff"
. 크레딧 : stackoverflow.com/a/35695350/5470596