91

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

4

1 回答 1

96

你想要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)
于 2012-10-23T19:26:08.950 回答