有没有办法在CMake脚本中将变量设置为shell命令的输出?我SET(FOO COMMAND "echo bar")
会想到类似的东西
Answers:
您需要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
。为此,应将命令行arg传递给CMake -E
。有关此类命令的完整列表,请运行cmake -E help
在CMake脚本中,CMake可执行文件由引用${CMAKE_COMMAND}
,因此该脚本需要执行以下操作:
execute_process(COMMAND ${CMAKE_COMMAND} -E echo bar OUTPUT_VARIABLE FOO)
OUTPUT_STRIP_TRAILING_WHITESPACE
或多或少需要@hbobenicio IMO
COMMAND bash "-c" "your_complex.sh | command && stuff"
。信用:stackoverflow.com/a/35695350/5470596