CMAKE_CXX_CLANG_TIDY: избегать прерывания сборки из-за ошибок диагностики - PullRequest
0 голосов
/ 31 октября 2018

Я строю проект C ++, используя clang-tidy в качестве linter (cmake -DCMAKE_CXX_CLANG_TIDY = clang-tidy).

После обновления моей системы (Fedora 28-> 29, cmake 3.11-> 3.12, я верю), я не могу больше строить, когда clang-tidy сообщает о некоторой clang-диагностической ошибке (которую я не могу исправить прямо сейчас ...) , Я уверен, что clang-Diagnostic-error не прервал сборку ранее ... Но я не могу быть уверен на сто процентов.

Редактировать: изменение произошло в clang-tidy, теперь он возвращает ненулевой код завершения при обнаружении ошибок.

Можно ли подавить эти ошибки, что-то вроде противоположности "-warnings-as-errors"?

1 Ответ

0 голосов
/ 02 ноября 2018

Не уверен, если решение или обходной путь, но это делает трюк (в моей ОС ...):

cmake -DCMAKE_CXX_CLANG_TIDY="${PATH_TO_SCRIPT}/suppress_exit_status.sh;clang-tidy"

PATH_TO_SCRIPT к скрипту - это абсолютный путь к suppress_exit_status.sh, который выглядит следующим образом:

#!/bin/sh
$@||echo Command \"$@\" failed with exit code $?

|| является оператором "или", второй операнд выполняется только в случае сбоя первого. Кажется, что cmake захватывает стандартную ошибку из команды и выдает ее, отсюда и сообщение об ошибке.

Я не мог найти более элегантный способ сделать это, невозможно бросить || непосредственно в CMAKE_CXX_CLANG_TIDY.

...