我正在与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
消息的机制?
答案 0 :(得分:1)
将COMMENT
参数传递给add_custom_command
(请参见the documentation)。这不会完全禁止显示该消息,但会显示您的自定义消息,而不是自动生成的消息:
add_custom_command(
OUTPUT ${OUTPUT_ARTIFACTS}
COMMAND ...
DEPENDS ${INPUT_ARTIFACTS}
COMMENT "Generating foo artifacts"
)