Как я могу подавить сообщение `Generation XXX` для cmake` add_custom_command`? - PullRequest
0 голосов
/ 11 сентября 2018

Я работаю с проектом CMake, который принимает большой набор входных файлов и обрабатывает их, чтобы получить еще больший набор выходных файлов.Это делается с помощью одного вызова скрипта Python.

В скрипте CMake это выражается как

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

. Он прекрасно работает в сборках Windows, но в Ubuntu, при использовании сборок makefile это не удается.потому что в make-файле есть «полезная» команда в стиле

@$(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 тысяч символов, поэтому при запуске make она дросселирует с

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

Это очень расстраивает, так как это не критическая часть сборки, а только обмен сообщениями о состоянии, который в данном случае является избыточным, поскольку скрипт, производящий артефакты, также выдает выходные данные для каждого артефакта.

Существует ли механизм подавления сообщения CMake generating?

1 Ответ

0 голосов
/ 11 сентября 2018

Передайте аргумент COMMENT в add_custom_command (см. документацию ).Это не полностью подавляет сообщение, но вместо автоматически сгенерированного будет отображаться ваше собственное сообщение:

add_custom_command(
    OUTPUT ${OUTPUT_ARTIFACTS}
    COMMAND ...
    DEPENDS ${INPUT_ARTIFACTS}
    COMMENT "Generating foo artifacts"
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...