Comment utiliser CMAKE_EXPORT_COMPILE_COMMANDS?
J'ai essayé d'utiliser clang-modernize
avec CMAKE_EXPORT_COMPILE_COMMANDS
comme recommandé dans l'aide de cet outil.
Avec cette option cmake génère un fichier JSON contenant de compiler des informations telles que les chemins d'inclusion (voir aussi).
Cette variable est acceptée sur la ligne de commande cmake,
mais cmake --help-variable CMAKE_EXPORT_COMPILE_COMMANDS
ne fonctionne pas (ce qui est cohérent avec cette liste de diffusion, l'affichage).
Quelqu'un a une idée sur comment l'utiliser?
Je pourrais aussi l'utiliser avec cppcheck.
Quelques infos
J'ai découvert sur un clang forum du développeur que ce cmake fonctionnalité n'est pas disponible sur tous les générateurs. Cela pourrait changer dans l'avenir, dans le temps, ma question reste posée et je vais essayer de voir ce qu'il se passe si j'utilise d'autres générateurs de Visual Studio.
OriginalL'auteur dzada | 2013-11-18
Vous devez vous connecter pour publier un commentaire.
Je suggère de réglage
dans le CMakeList.txt
OriginalL'auteur Jörn Reimerdes
De CMake 3.5 le
CMAKE_EXPORT_COMPILE_COMMANDS
option est pris en charge par les Ninja et les Makefiles générateurs.Que des moyens pour générer un JSON de la compilation de la base de données a pour sélectionner un générateur qui la prend en charge.
Par exemple sur UNIX:
(comme il utilise le générateur de makefile là, par défaut)
Sinon, vous pouvez spécifier explicitement un générateur comme ceci:
Ou:
Ou l'autre des makefiles variante que votre cmake support - une liste de charge des générateurs est inclus dans la sortie de
cmake --help
.Noter que la compilation de la base de données JSON fichier est généré à cmake temps d'exécution - pas au moment de la compilation. Aussi, avec les récentes clang versions (par exemple, clang
>= 3.8
),clang-modernize
a été fusionnée dans laclang-tidy
.OriginalL'auteur maxschlepzig
Moi aussi, je n'ai pas pu obtenir de travailler sur Visual Studio générateur.
Il n'a, cependant, le travail à l'aide de la "NMake Makefiles" générateur.
OriginalL'auteur zr.