Как построить последний clang-tidy?
Я пытался собрать clang-tidy из источников, но он жалуется на неопределенную команду CMake:
CMake Error at clang-apply-replacements/CMakeLists.txt:5 (add_clang_library):
Unknown CMake command "add_clang_library".
CMake Warning (dev) in CMakeLists.txt:
No cmake_minimum_required command is present. A line of code such as
cmake_minimum_required(VERSION 3.9)
should be added at the top of the file. The version specified may be lower
if you wish to support older CMake versions for this project. For more
information run "cmake --help-policy CMP0000".
This warning is for project developers. Use -Wno-dev to suppress it.
-- Configuring incomplete, errors occurred!
Как мне собрать clang-tidy или, наоборот, как установить последнюю версию на macOS?
Ответы
Ответ 1
clang-tidy предназначен для создания внутри checkout llvm/clang и зависит от макросов CMake из проекта llvm. Вы должны проверить репозиторий llvm, затем clang repo внутри llvm/tools/clang
, затем clang-tools-extra repo внутри llvm/tools/clang/tools/extra
. Затем вы можете запустить CMake в каталоге верхнего уровня, и make clang-tidy
должен работать.
Если вы не заинтересованы в его создании самостоятельно, похоже, что формула Homebrew для LLVM также включает дополнительные инструменты: https://github.com/Homebrew/homebrew-core/blob/382d3defb5bc48ce2dccd17261be70c4ada9a124/Formula/llvm.rb#L181
Ответ 2
@jtbandes: спасибо за информацию.
Я хотел бы поделиться этими явными шагами для нас, новичков:
1. Загрузите выпущенные исходники со страницы загрузки LLVM
2. Поместите каждый из них в соответствующий каталог:
$ tar -zxvf <download_dir_path>/llvm-6.0.1.src.tar.xz
$ cd llvm-6.0.1.src/tools
$ tar -zxcf <download_dir_path>/cfe-6.0.1.src.tar.xz
$ cd llvm-6.0.1.src/tools/cfe-6.0.1.src/tools
$ tar -zxvf <download_dir_path>/clang-tools-extra-6.0.1.src.tar.xz
Результаты в каталоге llvm-6.0.1.src/tools/cfe-6.0.1.src/tools/clang-tools-extra-6.0.1.src/clang-tidy
; Что неверно. lang-tools-extra-6.0.1.src
необходимо переименовать в extra
(как упомянуто @jtbandes).
3. Переименуйте его или предоставьте символическую ссылку:
$ cd llvm-6.0.1.src/tools/cfe-6.0.1.src/tools
$ mv clang-tools-extra-6.0.1.src extra
or
$ ln -s clang-tools-extra-6.0.1.src extra
Путь llvm-6.0.1.src/tools/cfe-6.0.1.src/tools/extra/clang-tidy
должен быть действительным
4. Постройте его:
$ cd llvm-6.0.1.src
$ mkdir build
$ cd build
$ cmake ..
$ make
Все должно быть сделано без ошибок или предупреждений.
5. Построить вывод:
Результат сборки можно найти в llvm-6.0.1.src/build/bin
.
Ответ 3
Последние шаги:
git clone https://github.com/llvm/llvm-project.git
cd llvm-project
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLLVM_ENABLE_PROJECTS="clang-tools-extra" ../llvm
make install-clang-tidy
Ссылка, ниндзя и другие подробности: мой блог.