如何用shell命令的结果初始化一个CMakevariables
有一种方法可以将CMake脚本中的variables设置为shell命令的输出吗? 会想到像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提供了一个跨平台的解决scheme。 CMake本身可以用来运行可以在所有系统上使用的命令,其中之一就是echo
。 为此,CMake应该通过命令行arg -E
。 有关这些命令的完整列表,请运行cmake -E help
在CMake脚本中,CMake可执行文件被引用${CMAKE_COMMAND}
,所以脚本需要做:
execute_process(COMMAND ${CMAKE_COMMAND} -E echo bar OUTPUT_VARIABLE FOO)