CommunityImagegithub.com

build2-community/build2

À utiliser lors de la construction, des tests, du packaging ou de la gestion des dépendances pour les projets C/C++ avec la chaîne d'outils build2. Couvre le pilote du système de construction (b), le gestionnaire de paquets (bpkg), le gestionnaire de dépendances de projet (bdep), l'exécuteur de tâches (bx) et l'interface web de dépôt (brep). Activez pour : écrire ou lire des fichiers de construction, diagnostiquer des erreurs de construction, résoudre des conflits de dépendances de paquets, empaqueter une bibliothèque pour cppget.org, configurer des environnements de construction, configurer des installations, rédiger des scripts de test, héberger des dépôts de paquets, ou exécuter toute commande b/bpkg/bdep/bx/brep-*.

Qu'est-ce que build2 ?

Cette compétence fournit une documentation de référence structurée pour l'ensemble de la chaîne d'outils build2, un environnement intégré pour le développement C/C++. Elle couvre tous les outils principaux : le système de construction `b`, le gestionnaire de paquets `bpkg`, le gestionnaire de dépendances de projet `bdep`, l'exécuteur de tâches `bx` et l'interface web de dépôt `brep`. Elle est conçue pour aider les développeurs à accomplir des tâches spécifiques en les orientant vers la documentation appropriée, comme l'écriture de fichiers de construction, la résolution de conflits de dépendances, le packaging de bibliothèques pour le dépôt cppget.org, la configuration d'environnements de compilation croisée ou la mise en place de pipelines CI/CD. La compétence s'appuie sur un index complet (INDEX.md) et une table de correspondance détaillée liant chaque tâche à son fichier de guide ou HOWTO pertinent, garantissant ainsi un accès rapide à l'information. Elle prend en charge l'ensemble des plateformes sur lesquelles build2 est disponible (Linux, macOS, Windows, etc.) et son utilisation est indispensable pour toute personne travaillant avec cette chaîne d'outils, que ce soit pour la construction de projets simples ou la gestion de dépendances complexes et de configurations avancées.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/build2-community/build2-agent-skills/tree/HEAD

Installed? Explore more Image skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Compétence build2

build2 est une chaîne d'outils intégrée de construction C/C++ combinant un système de construction (b), gestionnaire de paquets (bpkg), gestionnaire de dépendances de projet (bdep), exécuteur de tâches (bx), et interface web de dépôt (brep). Cette compétence fournit une documentation de référence structurée pour les cinq outils.

Commencez par INDEX.md pour l'index complet des commandes et la navigation, ou utilisez le tableau ci-dessous pour accéder directement au fichier pertinent.

Quand utiliser

TâcheCommencez ici
Écrire ou lire un fichier de constructionguides/build2-intro-concepts.md
Syntaxe du langage des fichiers de construction (if/loop/switch/patterns)guides/build2-buildfile-language.md
Directives, motifs de noms et attributs des fichiers de constructionguides/build2-directives-patterns.md
Épingler une cible à src au lieu de out (qualification @./)guides/build2-targets-variables.md
Créer des répertoires imbriqués avec fsdir{}HOWTO/fsdir-parent-chain.md
Rechercher la signature, les flags ou la pureté d'une fonction de fichier de constructionguides/build2-functions.md
Projets de bibliothèque, importation de cibles, sous-projetsguides/build2-projects-advanced.md
Importer une bibliothèque pour ses métadonnées tout en la liant (y compris installée)HOWTO/import-immediate-vs-ordinary.md
Ajouter rpath pour une dépendance uniquement dlopen (jamais liée)HOWTO/rpath-unlinked-dependency.md
Écrire une recette ad hoc ({{ }})HOWTO/ad-hoc-recipe.md
Partager un corps de recette entre plusieurs cibles via les motifs de noms ~/^HOWTO/ad-hoc-pattern-rule.md
Créer une cible équivalente à PHONY (alias{})HOWTO/alias-targets.md
Quelles options de compilation/lien placer dans un fichier de constructionHOWTO/buildfile-compile-options.md
Placer un flag de compilation après le mode compilateur ou -stdHOWTO/buildfile-compile-options.md
Choisir += vs = pour une liste spécifique à une cibleHOWTO/buildfile-compile-options.md
Porter un projet CMake vers des fichiers de construction build2HOWTO/migrate-from-cmake.md
Garder le graphe de construction indépendant de la configurationHOWTO/config-independent-build-graph.md
Options de compilation et de lien C/C++, support des modulesguides/build2-modules-cxx.md
Variables communes C, exportation DLL, base de données de compilation, classe vs. ID du compilateurguides/build2-modules-cc.md
Types de cibles bin/liba/libs/exeguides/build2-modules-bin.md
Correspondre au nom ou SONAME d'une bibliothèque partagée amontHOWTO/match-upstream-library-name.md
Créer une bibliothèque header-only (sans binaire)HOWTO/header-only-library.md
Lier pthreadHOWTO/link-pthread.md
Lier une bibliothèque système (-lm, -ldl, advapi32.lib)HOWTO/link-system-library.md
Intégrer une ressource Windows .rc (VERSIONINFO) dans une DLLHOWTO/windows-resource-file.md
Ordonner les sources avant les bibliothèques sur une cible de lienHOWTO/link-prerequisite-order.md
Rendre les composants de bibliothèque optionnelsHOWTO/optional-library-components.md
Utiliser des en-têtes C/C++ générés automatiquementHOWTO/generated-headers.md
Créer une bibliothèque qui fournit main()HOWTO/library-provides-main.md
Désactiver la variante de bibliothèque partagée par plateformeHOWTO/disable-shared-lib-per-platform.md
Exporter des métadonnées depuis des exécutables ou des bibliothèquesHOWTO/target-metadata.md
Tester un import! installé localement contre un préfixe réelHOWTO/local-installed-import.md
Ajouter/supprimer des paquets, résoudre les conflits de versionbpkg/README.md
Construire un paquet, le mettre à niveau ou le corrigerbpkg/bpkg-pkg-build.md
Créer une configuration bpkg (autonome, sans projet bdep)bpkg/bpkg-cfg-create.md
Créer une configuration et initialiser un projet bdep dedansbdep/bdep-init.md
Initialiser un projet dans une configuration existantebdep/bdep-init.md
Synchroniser le manifeste/fichier de verrouillage avec la configurationbdep/bdep-sync.md
Créer un nouveau projetbdep/bdep-new.md
Voir ce que produit une combinaison d'options de bdep newbdep/bdep-new-layouts.md
Publier un paquetbdep/bdep-publish.md
Publier une nouvelle versionbdep/bdep-release.md
Écrire des scripts de testguides/testscript-summary.md
Commandes Testscript, redirections, regex, nettoyage, fonctions intégréesguides/testscript-commands.md
Nettoyer les tests mal comportés avec TestscriptHOWTO/sanitize-tests.md
Utiliser assert() correctement dans les testsHOWTO/assert-in-tests.md
Tests avec dépendances supplémentaires (paquet de test séparé)HOWTO/tests-extra-dependencies.md
Écrire un résumé lib-tests/examples/benchmarks ou PACKAGE-READMEHOWTO/tests-extra-dependencies.md
Construire uniquement ce qui est nécessaire pour le test ou l'installationHOWTO/update-for-test-install.md
Câbler des fixtures de test d'exécution (aides enfants, données d'arborescence source)HOWTO/test-runtime-fixtures.md
Donner aux tests l'accès aux répertoires de données de l'arborescence sourceHOWTO/test-runtime-fixtures.md
Exclure les fixtures/ressources de test d'une archive b distHOWTO/exclude-test-data-from-dist.md
Tester avec Testscript un exécutable importé (par exemple, le propre exe{} d'un paquet depuis tests/)HOWTO/test-imported-executable.md
Résoudre les conflits "déjà mis à jour mais [pas] pour l'installation"HOWTO/for-install-conflicts.md
Empaqueter une bibliothèque tierceguides/packaging-guide-summary.md
Exécuter le workflow de packaging de bout en bout cppget.orgskills/build2-package/SKILL.md
Exécuter la vérification de santé locale de pré-publicationskills/build2-review/SKILL.md
Nommer un paquet, projet et dépôt tiersHOWTO/package-naming.md
Démarrer un paquet tiers sur la branche de révisionguides/packaging-guide-summary.md
Exiger une fonctionnalité de dépendance depuis une clause dependsHOWTO/require-dependency-feature.md
Comment un dépôt pkg vs git trouve les dépendancesguides/packaging-guide-summary.md
Tester et publier un paquet tiersguides/packaging-guide-testing.md
Réviser une soumission de paquet tiersguides/packaging-guide-review.md
Gestion des versions de packaging (nouvelle révision, nouvelle version)guides/packaging-guide-version-management.md
Anti-patrons de packaging, ce qu'il ne faut pas faireguides/packaging-guide-antipatterns.md
Gérer les en-têtes privés lors du packaging d'un projet tiersHOWTO/third-party-private-headers.md
Installer des pages de manuel (toute section autre que 1)HOWTO/man-pages-install.md
Empaqueter un journal de modifications amont avec un nom non canoniqueHOWTO/package-changes-file.md
Règles de nom des paquets bpkg, format de version, syntaxe des contraintesguides/bpkg-package-name-version.md
Exprimer une licence de paquet dans le manifeste (SPDX, other:, licences multiples)guides/packaging-license.md
Installer ou amorcer la chaîne d'outilsguides/install-bootstrap.md
Installer la chaîne d'outils depuis un dépôt (étape 3)guides/install-toolchain.md
Mettre à niveau une chaîne d'outils installée (sale ou organisée)guides/install-upgrade.md
Utiliser le prétraitement de template .in ou le module bashguides/build2-modules-misc.md
Module version : variables, versions instantanées, en-têtes de versionguides/build2-module-version.md
Traiter config.h.in / config.h.cmake / config.h.mesonguides/build2-modules-autoconf.md
Ajouter des vérifications autoconf spécifiques au projetguides/build2-autoconf-project-checks.md
Contribuer une vérification au catalogue intégré autoconfguides/build2-autoconf-contributing-checks.md
Utiliser les résultats des vérifications autoconf dans les fichiers de constructionguides/build2-autoconf-buildfile.md
kconfig : référence du langage Kconfig (entrées de configuration, dépendances, menus, choix)guides/kconfig-summary.md
kconfig : intégration au système de construction et exemplesguides/kconfig-integration.md
kconfig : options d'aide, recettes de configuration non interactives/aléatoiresguides/kconfig-patterns.md
Créer un module build2 personnalisé (règles, init, boot)guides/build2-module-hello.md
Comprendre l'API du module build2 (points d'entrée, module_functions)guides/build2-module-hello.md
Développer un module build2 en phase d'amorçageguides/build2-module-hello.md
Écrire une règle build2 personnalisée (match, apply, recipe, register)HOWTO/write-build2-rule.md
Configurer un environnement de développement de module build2guides/build2-module-dev-setup.md
Diviser les configurations de construction hôte/cible pour le développement de modulesguides/build2-module-dev-setup.md
Utiliser un module en version de développement dans d'autres projetsguides/build2-module-dev-setup.md
Configurer la compilation croisée avec des triplets de cibleHOWTO/cross-compilation.md
Gérer les configurations debug/release/sanitizeHOWTO/multiple-configurations.md
Configurer un pipeline CI/CD pour un projet build2HOWTO/ci-cd-setup.md
Filtrer les constructions CI automatisées pour des plateformes spécifiquesHOWTO/builds-ci-filtering.md
Tracer si un motif build-include/build-exclude correspond à un nom de botHOWTO/builds-ci-filtering.md
Lire les résultats CI de cppget.org (badges test-installed)HOWTO/ci-results.md
Demander une bibliothèque fournie par le système sur un bot CI spécifiqueHOWTO/sys-build-config.md
Configurer build2 pour le développement de la chaîne d'outilsHOWTO/toolchain-dev-setup.md
Élaborer un nouveau répertoire de paquet bpkgscripts/new-package.sh
Exécuter des scripts .bx ou des tâches nomméesbx/bx.md
Démarrer avec les scripts .bx (procédure pratique)HOWTO/bx-script.md
Vérifier que la chaîne d'outils est installéescripts/verify-install.sh
Trouver un compilateur C++ pour config.cxx=scripts/probe-compiler.sh
Valider un fichier manifeste de paquetscripts/check-manifest.sh
Exécuter les tests dans une configuration bpkgscripts/run-tests.sh
Inspecter le nom/version/racines d'un projetscripts/show-project-info.sh
Vérifier les liens brisés dans la documentationscripts/check-links.sh
Déployer une interface web de dépôt de paquets brepbrep/README.md
Charger les données du dépôt dans brepbrep/brep-load.md
Expirer les anciennes constructions ou archiver les locataires dans brepbrep/brep-clean.md
Configurer ou migrer les bases de données brepbrep/brep-migrate.md
Surveiller l'infrastructure de construction brep pour les retardsbrep/brep-monitor.md
Nettoyer les répertoires de téléchargement de distribution binairebrep/brep-upload-bindist-clean.md
Implémenter un gestionnaire de soumission de paquet ou CIbrep/brep-request-handling.md
Comprendre le protocole de soumission de paquet brepbrep/brep-request-handling.md
Comprendre le protocole de requête CI brepbrep/brep-request-handling.md
Résoudre les erreursHOWTO/troubleshooting.md
Recettes pratiques par sujetHOWTO/README.md
Référence terminologiqueGLOSSARY.md

Orientation rapide des outils

BinaireRôleCharger quand
bSystème de constructionConstruire, lier, exécuter des fichiers de construction
bpkgGestionnaire de paquetsAjouter/supprimer/mettre à jour des dépendances, créer des configurations autonomes
bdepGestionnaire de dépendances de projetInitialiser des projets, synchroniser des configurations, publier
bxExécuteur de tâchesExécuter des scripts .bx ou des tâches nommées
brepInterface web de dépôtHéberger, afficher et gérer le contenu d'un dépôt de paquets

Guide de démarrage rapide

  1. Installer la chaîne d'outils : Suivez guides/install-toolchain.md.
  2. Créer un projet : Utilisez bdep new --type exe hello (voir bdep/bdep-new.md).
  3. Initialiser une configuration : bdep init -C @gcc (voir bdep/bdep-init.md).
  4. Construire : b dans le répertoire du projet.
  5. Tester : bdep test.

Ressources principales

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Skills associés