У меня есть cmake
проект, который я хотел бы модернизировать, используя clang-tidy
.Чтобы не происходило слишком много событий одновременно, я только активировал опцию modernize-use-override
.Однако, когда я применяю это:
$> run-clang-tidy -header-filter='.*' -checks='-*, modernize-use-override' -fix
к проекту, clang-tidy
вставляет несколько экземпляров спецификатора override
, например:
void update_sizes() override override override etc.
Я пытался следоватьданный совет здесь и использование cmake
для создания базы данных команд компиляции json:
$>cmake ../../ -DCMAKE_BUILD_TYPE=debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
Я убедился, что cmake
на самом деле подбирает компилятор clang
, установив егопо умолчанию для всей системы (с использованием update-alternative
).В этом случае cmake
генерирует make-файлы, которые вызывают компилятор clang.
Я использую Ubuntu 18.10 и clang 7.
Я также пробовал это с использованием clang-6
и установкой cmake
генерировать ninja
сценариев сборки вместо make
файлов, но результат всегда один и тот же.
Весь проект прекрасно компилируется как с gcc
, так и с clang
до исправления.Применяется.
Обратите внимание, что здесь есть аналогичное обсуждение , однако здесь дан совет использовать run-clang-tidy.py
, и это именно то, что я делаю.Поэтому я не считаю это дубликатом.