Partager via


Fichiers CONTROL

Avertissement

CONTROL les fichiers sont déconseillés et conservés uniquement pour la compatibilité descendante avec les versions antérieures de vcpkg. Utilisez vcpkg.json fichiers manifestes pour tout port nouvellement créé.

Permet ./vcpkg format-manifest path/to/CONTROL de convertir un fichier existant CONTROL en vcpkg.json fichier.

Le CONTROL fichier contient des métadonnées sur le port. La syntaxe est basée sur le format Debiancontrol, bien que nous prenions uniquement en charge le sous-ensemble de champs documentés ici.

Les noms de champs respectent la casse et démarrent la ligne sans espace blanc de début. Les paragraphes sont séparés par une ou plusieurs lignes vides.

Paragraphe source

Le premier paragraphe d’un CONTROL fichier est le paragraphe Source. Il doit avoir un champ Versionet Description un Sourcechamp. L’ensemble complet de champs est documenté ci-dessous.

Exemples

Source: ace
Version: 6.5.5
Description: The ADAPTIVE Communication Environment
Source: vtk
Version: 8.2.0
Port-Version: 2
Description: Software system for 3D computer graphics, image processing, and visualization
Build-Depends: zlib, libpng, tiff, libxml2, jsoncpp, glew, freetype, expat, hdf5, libjpeg-turbo, proj4, lz4, libtheora, atlmfc (windows), eigen3, double-conversion, pugixml, libharu, sqlite3, netcdf-c

Champs reconnus

Source

Nom du port.

Lorsque vous ajoutez de nouveaux ports, sachez que le nom peut entrer en conflit avec d’autres projets qui ne font pas partie de vcpkg. Par exemple, les conflits avec un trop grand nombre d’autres projets doivent vous permettre d’ajouter une étendue au nom, par taocpp-json exemple json pour le rendre unique. Vérifiez qu’il n’existe aucun conflit sur un moteur de recherche et sur d’autres collections de packages.

Regroupements de packages à case activée pour les conflits :

Version

Version de la bibliothèque.

Ce champ est une chaîne alphanumérique qui peut également contenir ., _ou -. Aucune tentative de classement des versions n’est effectuée ; toutes les versions sont traitées comme des chaînes de bits et sont évaluées uniquement pour l’égalité.

Pour les ports de mise en production étiquetés, nous suivons la convention suivante :

  1. Si le port suit un schéma tel que va.b.c, nous supprimons le début v. Dans ce cas, il devient a.b.c.
  2. Si le port inclut son propre nom dans la version, curl-7_65_1nous supprimons le nom principal : 7_65_1

Pour les ports de mise en production propagée, nous utilisons la date à laquelle la validation a été accessible par vous, mise en forme comme YYYY-MM-DD. A déclaré une autre façon : si quelqu’un avait un ordinateur de temps et est allé à cette date, ils verraient cette validation comme le dernier maître.

Prenons l’exemple suivant :

  1. La dernière validation a été effectuée le 2019-04-19
  2. La chaîne de version actuelle est 2019-02-14-1
  3. La date d’aujourd’hui est 2019-06-01.

Ensuite, si vous mettez à jour la version source aujourd’hui, vous devez lui donner la version 2019-06-01.

Version du port

Version du port.

Ce champ est un entier non négatif. Il permet de versionr le fichier de port séparément de la version de la bibliothèque sous-jacente ; si vous apportez une modification à un port, sans modifier la version sous-jacente de la bibliothèque, vous devez incrémenter ce champ par un (en commençant à 0, ce qui équivaut à aucun Port-Version champ). Lorsque la version de la bibliothèque sous-jacente est mise à niveau, ce champ doit être rétabli (c’est-à-dire 0 supprimer le Port-Version champ).

Exemples
Version: 1.0.5
Port-Version: 2
Version: 2019-03-21

Description

Description de la bibliothèque.

Par convention, la première ligne de la description est un résumé de la bibliothèque. Une description détaillée facultative suit. La description détaillée peut être plusieurs lignes, tout en commençant par l’espace blanc.

Exemples
Description: C++ header-only JSON library
Description: Mosquitto is an open source message broker that implements the MQ Telemetry Transport protocol versions 3.1 and 3.1.1.
  MQTT provides a lightweight method of carrying out messaging using a publish/subscribe model. This makes it suitable for "machine
  to machine" messaging such as with low power sensors or mobile devices such as phones, embedded computers or microcontrollers like the Arduino.

Homepage

URL de la page d’accueil de la bibliothèque où un utilisateur peut trouver une documentation supplémentaire ou le code source d’origine.

Exemple :

Homepage: https://github.com/Microsoft/vcpkg

Build-Depends

Liste séparée par des virgules des ports vcpkg dont la bibliothèque a une dépendance.

vcpkg ne fait pas la distinction entre les dépendances de build uniquement et les dépendances d’exécution. La liste complète des dépendances nécessaires pour utiliser correctement la bibliothèque doit être spécifiée.

Par exemple : websocketpp est une bibliothèque d’en-tête uniquement, et ne nécessite donc aucune dépendance au moment de l’installation. Toutefois, les utilisateurs en aval ont besoin d’améliorer et d’ouvrir l’application pour utiliser la bibliothèque. Par conséquent, websocketpp liste boost et ouvre en tant que dépendances.

Si le port dépend des fonctionnalités facultatives d’une autre bibliothèque, celles-ci peuvent être spécifiées à l’aide de la portname[featurelist] syntaxe. Si le port ne nécessite aucune fonctionnalité de la dépendance, cela doit être spécifié en tant que portname[core].

Les dépendances peuvent être filtrées en fonction du triplet cible pour prendre en charge différentes exigences. Ces filtres utilisent la même syntaxe que le champ Supports ci-dessous et sont entourés de parenthèses en suivant le nom de port et la liste des fonctionnalités.

Exemple
Build-Depends: rapidjson, curl[core,openssl] (!windows), curl[core,winssl] (windows)

Fonctionnalités par défaut

Liste séparée par des virgules des fonctionnalités de port facultatives à installer par défaut.

Ce champ est facultatif.

Exemple
Default-Features: dynamodb, s3, kinesis

Prise en charge

Expression qui prend la valeur true lorsque le port est censé être généré avec succès pour un triplet.

Actuellement, ce champ est utilisé uniquement dans le test CI pour ignorer les ports. À l’avenir, ce mécanisme vise à avertir les utilisateurs à l’avance qu’une arborescence d’installation donnée n’est pas censée réussir. Par conséquent, ce champ doit être utilisé de façon optimiste ; dans les cas où un port devrait réussir 10 % du temps, il doit toujours être marqué « pris en charge ».

Consultez les expressions de plateforme dans la vcpkg.json documentation du manifeste pour obtenir la liste des identificateurs pris en charge.

Exemple
Supports: !(uwp|arm)

Paragraphes de caractéristiques

Plusieurs fonctionnalités facultatives peuvent être spécifiées dans les CONTROL fichiers. Il doit avoir un champ et Description un Feature champ. Il peut éventuellement avoir un Build-Depends champ. Elle doit être séparée d’autres paragraphes par une ou plusieurs lignes vides.

Exemple

Source: vtk
Version: 8.2.0-2
Description: Software system for 3D computer graphics, image processing, and visualization
Build-Depends: zlib, libpng, tiff, libxml2, jsoncpp, glew, freetype, expat, hdf5, libjpeg-turbo, proj4, lz4, libtheora, atlmfc (windows), eigen3, double-conversion, pugixml, libharu, sqlite3, netcdf-c

Feature: openvr
Description: OpenVR functionality for VTK
Build-Depends: sdl2, openvr

Feature: qt
Description: Qt functionality for VTK
Build-Depends: qt5

Feature: mpi
Description: MPI functionality for VTK
Build-Depends: mpi, hdf5[parallel]

Feature: python
Description: Python functionality for VTK
Build-Depends: python3

Champs reconnus

Fonctionnalité

Nom de la fonctionnalité.

Description

Description de la fonctionnalité utilisant la même syntaxe que le champ de port Description .

Build-Depends

Liste des dépendances requises pour générer et utiliser cette fonctionnalité.

Lors de l’installation, les dépendances de toutes les fonctionnalités sélectionnées sont combinées pour produire la liste complète des dépendances pour la build. Ce champ suit la même syntaxe que Build-Depends dans le paragraphe source.