我正在使用 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 generateing
消息?
最佳答案
将 COMMENT
参数传递给 add_custom_command
(请参阅 the documentation )。这不会完全抑制该消息,但它会显示您的自定义消息而不是自动生成的消息:
add_custom_command(
OUTPUT ${OUTPUT_ARTIFACTS}
COMMAND ...
DEPENDS ${INPUT_ARTIFACTS}
COMMENT "Generating foo artifacts"
)
关于cmake - 如何抑制 cmake `Generating XXX` 的 `add_custom_command` 消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52281487/