跳到主要内容

kmpkg_execute_required_process

执行一个带日志记录的进程,若该命令执行失败,则直接终止整个构建流程。

用法

kmpkg_execute_required_process(
COMMAND <${PERL}> [<arguments>...]
WORKING_DIRECTORY <${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg>
LOGNAME <build-${TARGET_TRIPLET}-dbg>
[TIMEOUT <seconds>]
[OUTPUT_VARIABLE <var>]
[ERROR_VARIABLE <var>]
[SAVE_LOG_FILES [<relative-path> [ALIAS <unique-alias>]]...]
)

参数

ALLOW_IN_DOWNLOAD_MODE

允许该命令在“下载模式(Download Mode)”下执行。

COMMAND

待执行的命令及其参数。

WORKING_DIRECTORY

执行该命令的工作目录。

LOGNAME

日志文件使用的前缀名称。该名称应对不同的三元组(triplet)保持唯一,避免同时构建多个三元组时日志文件发生冲突。

TIMEOUT(可选)

命令执行的超时时间(单位:秒),超时后会终止该命令。

OUTPUT_VARIABLE(可选)

用于接收命令标准输出(stdout)内容的变量。

OUTPUT_STRIP_TRAILING_WHITESPACE

设置 OUTPUT_VARIABLE 前,移除输出内容末尾的空白字符。

ERROR_VARIABLE(可选)

用于接收命令标准错误(stderr)内容的变量。

ERROR_STRIP_TRAILING_WHITESPACE

设置 ERROR_VARIABLE 前,移除错误输出内容末尾的空白字符。

SAVE_LOG_FILES(可选)

需要从工作目录移动到 ${CURRENT_BUILDTREES_DIR} 目录的文件列表。

该参数有助于在CI环境中收集相关日志文件,即使进程执行失败,这些文件也会被复制。 目标文件名由 LOGNAME 参数和源文件名拼接生成;若目标文件名未以 .log 结尾,会自动追加该后缀。

该参数在 kmpkg 版本 2023.01.10 中新增

在相对路径后指定 ALIAS <unique-alias> 参数时,会用 <unique-alias> 的值替代自动生成的目标文件名。

示例

源码

scripts/cmake/kmpkg_execute_required_process.cmake