Как построить последний 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

Ссылка, ниндзя и другие подробности: мой блог.