Aller au contenu
Bienvenue sur la nouvelle documentation de CppUtils !

CppUtils utilise le système de build XMake pour orchestrer la compilation de ses modules C++26 (.mpp), de ses en-têtes et de sa suite de tests.

Ce guide présente les commandes essentielles pour adapter la compilation à vos besoins (développement, débogage, tests unitaires, analyseurs dynamiques) ainsi que la référence détaillée de chaque option de configuration.


Par défaut, CppUtils est configurée comme une bibliothèque purement modulaire (moduleonly), compilée avec un niveau d’avertissements strict (-Wall, -Wextra, -pedantic, -Werror) et des optimisations maximales (set_optimize("fastest")).

Pour compiler la bibliothèque avec la configuration par défaut :

Fenêtre de terminal
# 1. Configurer la toolchain LLVM et le runtime partagé libc++
xmake f --toolchain=llvm --runtimes="c++_shared"
# 2. Compiler la bibliothèque
xmake

Pour exécuter les tests unitaires de CppUtils, activez l’option --enable_tests=y :

Fenêtre de terminal
# Configuration avec tests activés
xmake f --toolchain=llvm --runtimes="c++_shared" --enable_tests=y -y
# Compilation et exécution des tests unitaires
xmake run CppUtils-UnitTests

Pour exécuter un test ou une suite spécifique avec les options du framework de test :

Fenêtre de terminal
xmake run CppUtils-UnitTests --test="BidirectionalMap"

Si vous préférez configurer votre environnement de manière visuelle sans mémoriser la syntaxe en ligne de commande :

Fenêtre de terminal
xmake f --menu

Ce menu textuel interactif permet de naviguer au clavier dans les catégories du projet (Build CppUtils, Sanitizer, etc.), de cocher ou décocher les options souhaitées et de sauvegarder la configuration.


Le projet supporte l’ensemble des règles de mode natives de XMake via le flag -m ou --mode :

ModeFlagOptimisationsSymboles de debugCas d’usage
Release (défaut)-m release-O3 (fastest)NonProduction, benchmarks de performance.
Debug-m debug-O0Oui (-g)Débogage interactif avec GDB / LLDB.
Release with Debug-m releasedbg-O3Oui (-g)Analyse de performance avec symboles visibles.
Profile-m profileModéréesOui (-g + profiler)Profilage de performance via perf ou gprof.
Coverage-m coverageModéréesOui (--coverage)Analyse de couverture de code pour les tests.
Valgrind-m valgrindModéréesOui (-g)Analyse mémoire approfondie sous Valgrind.

Voici le tableau récapitulatif des options spécifiques déclarées dans le fichier xmake.lua de CppUtils :

OptionValeursDéfautDescription
--enable_testsy / nn (false)Inclut le répertoire tests/ et génère la cible binaire CppUtils-UnitTests.
--sanitize_memoryy / nn (false)Active les politiques ASan, LSan et UBSan (build.sanitizer.address, etc.).
--sanitize_thready / nn (false)Active la politique TSan (build.sanitizer.thread) pour la détection de conflits multithread.
--compiler_verbosey / nn (false)Transmet le flag -v au compilateur et à l’éditeur de liens pour inspecter les commandes exactes.
--enable_moduleonlyy / ny (true)Définit la cible en set_kind("moduleonly") pour l’exposition directe des modules C++26.
--toolchainllvm / clang / msvcDétectéSpécifie la chaîne d’outils du compilateur (msvc sous Windows).
--runtimes"c++_shared"DétectéDéfinit la variante de la bibliothèque d’exécution C++ (partagée requise pour les modules Clang).
--sdk<chemin>SystèmeChemin absolu vers le répertoire racine de la chaîne d’outils LLVM.

ActionCommande
Recompiler entièrement (clean build)xmake -r (ou xmake --rebuild)
Nettoyer les fichiers intermédiairesxmake clean
Nettoyer tous les caches et configurationsxmake clean -a
Afficher les commandes de compilation réellesxmake -vD
Afficher la configuration actuellexmake show
Lancer les tests en mode débogage LLDBxmake run -d CppUtils-UnitTests