有没有办法在CMake脚本中设置一个变量到shell命令的输出?
像SET(FOO COMMAND“echo bar”)这样的东西会被记住
像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)