J'ai essayé de construire clang-tidy à partir de sources mais il se plaint d'une commande CMake non définie:
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!
Comment puis-je créer clang-tidy ou, alternativement, comment installer la dernière version sur macOS?
[~ # ~] modifier [~ # ~] : cette réponse est obsolète - le projet LLVM est passé à un seul référentiel git à - https://github.com/llvm/llvm-project . Voir les réponses ci-dessous pour des instructions mises à jour.
clang-tidy est destiné à être construit à l'intérieur une extraction de llvm/clang, et dépend des macros CMake du projet llvm. Vous devriez vérifier le repo llvm, puis le repo clang à l'intérieur llvm/tools/clang
, alors le repo clang-tools-extra dans llvm/tools/clang/tools/extra
. Ensuite, vous pouvez exécuter CMake sur le répertoire de niveau supérieur et make clang-tidy
devrait marcher.
Si vous n'êtes pas intéressé à le construire vous-même, il semble que la formule Homebrew pour LLVM inclut également les outils supplémentaires: https://github.com/Homebrew/homebrew-core/blob/382d3defb5bc48ce2dccd17261be70c4ada9a124/Formula/llvm .rb # L181
@jtbandes: Merci pour l'information.
Je voudrais partager ces étapes explicites pour nous noobs:
$ 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
Résultats dans un répertoire llvm-6.0.1.src/tools/cfe-6.0.1.src/tools/clang-tools-extra-6.0.1.src/clang-tidy
; Ce qui est incorrect. Le lang-tools-extra-6.0.1.src
doit être renommé en extra
(comme mentionné par @jtbandes).
$ 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
Le chemin llvm-6.0.1.src/tools/cfe-6.0.1.src/tools/extra/clang-tidy
devrait maintenant être valide
$ cd llvm-6.0.1.src
$ mkdir build
$ cd build
$ cmake ..
$ make
Tout devrait se faire sans erreurs ni avertissements.
La sortie du build se trouve dans llvm-6.0.1.src/build/bin
.
Étapes à jour:
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
Référence, ninja et autres détails: mon propre article de blog.
J'ai eu le même problème que Per Mildner. Got est résolu avec le code légèrement modifié que YvesgereY a posté (je n'ai pas assez de réputation pour poster un commentaire sur cette réponse, donc une nouvelle réponse à la place).
En bref, j'ai ajouté -G "Unix Makefiles"
à cmake. Sans cette option, aucun makefile ne sera généré. De plus, j'ai utilisé -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;"
. Cela ne fonctionnait pas quand juste clang-tools-extra était spécifié.
Voici l'extrait entier:
git clone https://github.com/llvm/llvm-project.git
cd llvm-project
mkdir build
cd build
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;" ../llvm
make -j8 install-clang-tidy