cmake-init - L'initialisation du projet CMake manquant cmake-init est un initialiseur de projet CMake opiniâtre qui génère des projets CMake qui sont prêts à l'emploi, à séparer les cibles des consommateurs et des développeurs, fournissent des règles d'installation avec des packages CMake relocables appropriés et utilisent le CMake moderne (3.14+).
Veuillez consulter le wiki par exemple les sorties de CMake-Init et d'autres exemples pragmatiques de fonctionnalités implémentées pour CMake, comme les gestionnaires de packages, les tests de fuzz, les superbuilds, etc.






Si vous souhaitez me contacter pour quelque chose de lié à Cmake, vous pouvez me trouver dans la chaîne #cmake du Slack C ++. Si ce que vous souhaitez savoir est spécifique à Cmake-Init, vous pouvez également poser des questions dans les discussions de ce référentiel.
h lorsque vous y êtes invité. Bibliothèque statique / partagée? Choisissez simplement s lorsque vous y êtes invité. Simple et correct!FetchContentAssurez-vous que ces programmes sont installés:
NOTE
Certains de ces outils peuvent également être utilisés sur Windows si vous souhaitez utiliser Visual Studio, mais vous devez installer ces addines:
Ce package est disponible en téléchargement depuis PYPI. Vous pouvez installer ce package à l'aide de pip :
pip install cmake-init Clang-Tidy est un outil d'analyse statique qui vous aide à repérer les erreurs logiques dans votre code avant sa compilation. Ce script vous donne la possibilité de hériter du préréglage clang-tidy dans votre préréglage dev , permettant l'intégration CMake pour cet outil.
CI exécutera toujours Clang-tidy pour vous, il est donc entièrement facultatif pour l'installer et l'utiliser localement, mais il est recommandé.
Pour les utilisateurs de Windows , si vous souhaitez utiliser Clang-Tidy, vous devez installer Ninja et définir le champ generator dans votre préréglage dev sur Ninja . La raison en est que seuls les makefiles et les ninja sont pris en charge avec CMake pour une utilisation avec Clang-tidy. Pour les autres générateurs, cette fonctionnalité est un no-op.
CPPCHECK est un outil d'analyse statique similaire à Clang-Tidy, mais le chevauchement de ce qu'ils détectent est minime, il est donc avantageux de les utiliser tous les deux. Ce script vous donne la possibilité de hériter du préréglage cppcheck dans votre préréglage dev , permettant l'intégration CMake pour cet outil.
CI exécutera toujours CPPCHECK pour vous, il est donc entièrement facultatif pour l'installer et l'utiliser localement, mais il est recommandé.
Pour les utilisateurs de Windows , si vous souhaitez utiliser CPPCHECK, vous devez installer Ninja et définir le champ generator dans votre préréglage dev sur Ninja . La raison en est que seuls les makefiles et les ninja sont pris en charge avec CMake pour une utilisation avec CPPCHECK. Pour les autres générateurs, cette fonctionnalité est un no-op.
Doxygen est un outil pour générer une documentation à partir du code source annoté. En conjonction avec lui, M.CSS est utilisé pour présenter la documentation générée.
Les projets générés auront une cible docs en mode développeur, qui peut être utilisé pour construire la documentation dans le répertoire <binary-dir>/docs/html .
Une fois le doxygen installé, veuillez vous assurer que l'exécutable doxygen existe dans le PATH , sinon vous pourriez obtenir des messages d'erreur déroutants.
Cette documentation peut être déployée sur les pages GitHub à l'aide du travail docs dans le flux de travail CI généré. Suivez les commentaires laissés dans le travail pour l'activer.
Remarque : M.CSS ne fonctionne pas avec le doxygen> = 1,9. Vous pouvez installer 1.8.20 pour utiliser la cible docs . Voir les problèmes n ° 41 et n ° 48.
LCOV est un outil pour traiter les informations de couverture générées par des exécutables qui ont été instrumentés avec gcov de GCC. Ces informations de couverture peuvent être utilisées pour voir quelles parties du programme ont été exécutées.
Les projets générés auront une cible coverage en mode développeur si la variable ENABLE_COVERAGE est activée. La raison pour laquelle une cible distincte est utilisée au lieu de l'étape coverage intégrée de CTEST est parce qu'elle manque de personnalisation nécessaire. Cet objectif doit être exécuté après les tests et par défaut, il générera un rapport sur <binary-dir>/coverage.info et un rapport HTML dans le répertoire <binary-dir>/coverage_html .
Pour les utilisateurs de Windows , vous pouvez utiliser un outil similaire appelé OpenCPPcoverage, pour lequel il existe un exemple de script dans le répertoire cmake généré. Ce script est laissé comme exemple, car la VM Linux lance et s'exécute plus rapidement dans les actions GitHub et donc elle est utilisée pour la soumission de la couverture.
Clang-Format fait partie de la suite d'outils LLVM similaire à Clang-tidy. C'est un linter de code et un formateur de code, qui peut être utilisé pour appliquer les guides de style.
Deux cibles sont mises à disposition pour vérifier et corriger le code en mode développeur en utilisant respectivement les cibles format-check et format-fix .
Remarque : Le projet génère des fichiers qui sont formatés en fonction de Clang-Format 14. Des versions plus récentes ou anciennes peuvent formater le projet différemment.
Codespell est un outil pour trouver et corriger les erreurs d'orthographe principalement dans le code source.
Deux cibles sont mises à disposition pour vérifier et corriger les erreurs d'orthographe en mode développeur en utilisant respectivement les cibles spell-check et spell-fix .
L'indicateur -p peut être utilisé pour sélectionner un gestionnaire de packages pour le projet. Les arguments pour le drapeau peuvent être:
none : pas d'intégration du gestionnaire de packages (par défaut)conan : Conan Intégrationvcpkg : intégration VCPKGLorsque vous utilisez un gestionnaire de packages, les packages suivants sont utilisés dans le projet généré:
Assurez-vous de lire le document de piratage généré pour voir ce qui doit être fait pour récupérer les dépendances.
cmake-init [--c] <path>-s , -e ou -h après pour créer rapidement une bibliothèque partagée, exécutable ou une bibliothèque d'en-tête uniquement respectivement. Le commutateur --c définira le type du projet généré sur C au lieu de C ++.cmake-init --help cmake-init est un logiciel gratuit: vous pouvez utiliser, étudier, le partager et l'améliorer à votre testament. Plus précisément, vous pouvez le redistribuer et / ou le modifier en vertu des termes de la licence publique générale GNU publiée par la Free Software Foundation, soit la version 3 de la licence, soit (à votre option) n'importe quelle version ultérieure.
Le contenu du répertoire cmake-init/templates est concédé sous licence. Voir la licence dans ce répertoire pour plus de détails.