有没有办法将CMake脚本中的变量设置为shell命令的输出?
会想到像SET(FOO COMMAND "echo bar")
这样的东西
答案 0 :(得分:67)
您需要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 -E
传递CMake。有关此类命令的完整列表,请运行cmake -E help
在CMake脚本中,${CMAKE_COMMAND}
引用了CMake可执行文件,因此脚本需要执行以下操作:
execute_process(COMMAND ${CMAKE_COMMAND} -E echo bar OUTPUT_VARIABLE FOO)