Concept : Ports
Un port dans vcpkg est une recette avec version qui produit un ensemble de fichiers. L’exécution d’un port affecte le graphique d’installation en produisant de nouveaux fichiers d’en-tête ou binaires. Les ports peuvent avoir des dépendances sur d’autres ports et peuvent nécessiter des dépendances supplémentaires lorsque certaines fonctionnalités sont activées. Ces dépendances doivent être reflétées dans les métadonnées des ports. Au minimum, un port contient :
- Métadonnées relatives au package : nom, version, fonctionnalités prises en charge, dépendances, etc.
- Instructions pour acquérir, générer si nécessaire et installer le package.
En outre, les ports peuvent inclure :
- Correctifs à appliquer au code source du package
- Instructions pour s’intégrer au système de génération de votre projet
Portfile (portfile.cmake
)
Tous les ports doivent contenir un fichier de port (un fichier nommé portfile.cmake
). Un fichier de port est un script qui contient des instructions sur la génération et l’installation d’un package dans l’environnement vcpkg. Voici quelques tâches courantes effectuées par les fichiers de port :
- Téléchargez le code source d’un package.
- Générez le package à l’aide du système de génération amont.
- Copiez la sortie de build dans l’arborescence d’installation de vcpkg.
- Installez les fichiers d’intégration du système de génération.
vcpkg.json
Le vcpkg.json
fichier décrit les métadonnées relatives au package contenu dans le port vcpkg. Ce fichier définit des attributs tels que le nom, la version, la description, les dépendances, les fonctionnalités et plateformes prises en charge, etc. Consultez la référence de vcpkg.json
fichier pour en savoir plus.
Fichiers CONTROL
Avertissement
CONTROL
les fichiers sont déconseillés et conservés uniquement pour la compatibilité descendante.
CONTROL
les fichiers dans vcpkg servent de fichiers de métadonnées qui spécifient des détails sur un package, ou « port », que vcpkg peut installer. Ces fichiers sont déconseillés et ont largement été remplacés par vcpkg.json
des fichiers manifestes pour les nouveaux ports. Toutefois, elles sont conservées pour la compatibilité descendante. Pour plus d’informations, consultez les fichiers de contrôle.
Fichiers correctifs
Dans certains scénarios, un port peut inclure des fichiers correctifs. Ces fichiers portent des modifications dans le code source de la bibliothèque, qui sont essentielles pour résoudre les problèmes existants ou pour maintenir la compatibilité avec d’autres composants. Avant le début du processus de génération, les correctifs sont appliqués dans le cadre des étapes exécutées par le fichier portfile, ce qui facilite l’intégration transparente et sans erreur de la bibliothèque. Référencez le guide de maintenance pour en savoir plus.
Catégories de ports
Les catégories de ports sont des termes familiers que les mainteneurs utilisent pour articuler les rôles que les différents ports jouent dans vcpkg. Bien que ces catégories décrivent les fonctionnalités générales, il est important de noter qu’un port donné peut appartenir à plusieurs catégories ou peut-être aucun du tout, en fonction de ses fonctionnalités et cas d’usage.
Port standard
Un port standard sert de recette pour créer des bibliothèques à partir de sources ou fournir des fichiers d’en-tête pour les bibliothèques en-tête uniquement. Il contient les instructions et les métadonnées nécessaires pour acquérir, générer et installer la bibliothèque. La grande majorité des bibliothèques du Registre organisé sont des ports standard.
Port meta
Un méta port sert à imposer des contraintes sur le graphique d’installation sans avoir ses propres fichiers de build. Ces ports sont souvent utilisés pour regrouper un ensemble de bibliothèques associées sous un nom unique ou servir de couche d’indirection pour les composants remplaçables. Par exemple, boost
il s’agit d’un méta-port qui regroupe différentes bibliothèques Boost sous un nom unique pour faciliter la gestion des dépendances.
Port de script
Un port de script contient des scripts utilitaires principalement destinés aux tâches internes au sein de vcpkg ou à une consommation par d’autres ports. Ces ports permettent le contrôle de version des scripts utilitaires, ce qui permet de maintenir la compatibilité et la normalisation. Par exemple, vcpkg-cmake
est un port de script qui expose la fonction d’assistance vcpkg_cmake_configure()
.
Étapes suivantes
Ce document fournit une vue d’ensemble des ports dans vcpkg, détaillant leurs éléments essentiels et différentes catégories. Pour obtenir des rubriques plus avancées et des guides détaillés, consultez les rubriques suivantes :