如何使用shell命令的结果初始化CMake变量

时间:2012-10-23 18:53:51

标签: cmake

有没有办法将CMake脚本中的变量设置为shell命令的输出? 会想到像SET(FOO COMMAND "echo bar")这样的东西

1 个答案:

答案 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)