exec_program¶
3.28 版中已更改: 此命令仅在策略 CMP0153
未设置为 NEW
时可用。请将项目移植到 execute_process()
命令。
3.0 版中已弃用: 请改用 execute_process()
命令。
在处理 CMake 文件或脚本期间运行可执行程序
exec_program(
<executable>
[<working-dir>]
[ARGS <arguments-to-executable>...]
[OUTPUT_VARIABLE <var>]
[RETURN_VALUE <var>]
)
<executable>
在可选指定的目录 <working-dir>
中运行。如果可执行文件用双引号括起来,则可以包含参数,但最好使用可选的 ARGS
参数来指定可执行程序的参数。这是因为 CMake 将能够转义可执行路径中的空格。可选参数 OUTPUT_VARIABLE
指定一个变量,用于存储输出。要捕获执行的返回值,请提供 RETURN_VALUE
。如果指定了 OUTPUT_VARIABLE
,则不会有任何输出到运行 CMake 的控制台的 stdout/stderr。
示例¶
CMake 早期版本中使用的旧版 exec_program()
命令示例
exec_program(
some_command
${dir}
ARGS arg_1 arg_2 args "\"<quoted-arg>\""
OUTPUT_VARIABLE output
RETURN_VALUE result
)
在新的代码中使用 execute_process()
命令直接等效替换上述示例
execute_process(
COMMAND some_command arg_1 arg_2 args "<quoted-arg>"
WORKING_DIRECTORY ${dir}
RESULT_VARIABLE result
OUTPUT_VARIABLE output
ERROR_VARIABLE output
OUTPUT_STRIP_TRAILING_WHITESPACE
)