如何抑制cmake的“ add_custom_command”的“正在生成XXX”消息?

时间:2018-09-11 17:43:34

标签: cmake

我正在与CMake项目一起工作,该项目需要大量输入文件并对其进行处理以产生更大的输出文件集。这是通过单个python脚本调用完成的。

在CMake脚本中,表示为

add_custom_command(
    OUTPUT ${OUTPUT_ARTIFACTS}
    COMMAND ...
    DEPENDS ${INPUT_ARTIFACTS}
)

它在Windows构建中工作正常,但是在Ubuntu上,使用makefile构建会失败,因为在makefile中,样式中有一个“有用的”命令

@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=/home/bdavis/git/hifi/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Generating [SUPER LONG LIST OF OUTPUT ARTIFACTS]"

在我的测试系统上,后一个命令几乎超过了197 000个字符,因此当我运行时,请使其与

/bin/sh: 1: eval: /usr/bin/cmake: Argument list too long

这很令人沮丧,因为它不是构建的关键部分,而只是状态消息传递,在这种情况下是多余的,因为产生工件的脚本还会按工件输出输出。

是否存在抑制CMake generating消息的机制?

1 个答案:

答案 0 :(得分:1)

COMMENT参数传递给add_custom_command(请参见the documentation)。这不会完全禁止显示该消息,但会显示您的自定义消息,而不是自动生成的消息:

add_custom_command(
    OUTPUT ${OUTPUT_ARTIFACTS}
    COMMAND ...
    DEPENDS ${INPUT_ARTIFACTS}
    COMMENT "Generating foo artifacts"
)