cmake - 如何抑制 cmake `Generating XXX` 的 `add_custom_command` 消息?

标签 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 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/

相关文章:

python - 使用 Python 虚拟环境时,include 和 libs 在哪里?

macos - 使用brew构建libgit2静态库

c++ - CMake:手动设置 MPI header 和二进制文件的路径

python - 输出相同时不覆盖文件的简单方法

c++ - 如何告诉介子在哪些目录中查找依赖项?

python - 扩展 setuptools 扩展以在 setup.py 中使用 CMake?

cmake - Ogre 和 CMake 的错误

cmake - 如何让某些文件在 Qt Creator 中可见

android - 使用 CMake 为 Android 配置 Qt5 5.7 应用程序

尝试安装 gr-osmosdr 时出现 CMake 错误