informations de référence sur vcpkg-configuration.json
Le vcpkg-configuration.json
fichier fait partie du manifeste d’un projet, ainsi que vcpkg.json
. Tous les champs du vcpkg-configuration.json
fichier sont utilisés uniquement à partir du projet de niveau supérieur . Les vcpkg-configuration.json
fichiers de toutes les dépendances sont ignorés.
En mode manifeste, vcpkg-configuration.json
il peut se trouver dans un fichier distinct à côté vcpkg.json
ou il peut être incorporé dans le "vcpkg-configuration" field
.
En mode classique, vcpkg utilise le vcpkg-configuration.json
fichier à la racine de l’instance vcpkg.
Pour obtenir une vue d’ensemble de l’utilisation de registres avec vcpkg, consultez Utilisation des registres.
Le dernier schéma JSON est disponible à l’adresse https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json. Les ID Avec prise en charge du schéma JSON, telles que Visual Studio et Visual Studio Code, peuvent utiliser ce fichier pour fournir la saisie semi-automatique et la vérification de la syntaxe. Pour la plupart des IDE, vous devez définir "$schema"
dans votre vcpkg-configuration.json
URL.
Exemple
{
"$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json",
"default-registry": {
"kind": "git",
"repository": "https://internal/mirror/of/github.com/Microsoft/vcpkg",
"baseline": "eefee7408133f3a0fef711ef9c6a3677b7e06fd7"
},
"registries": [
{
"kind": "git",
"repository": "https://github.com/microsoft/vcpkg-docs",
"reference": "vcpkg-registry",
"baseline": "768f6a3ad9f9b6c4c2ff390137690cf26e3c3453",
"packages": [ "beicode", "beison" ]
}
],
"overlay-ports": [
"./team-ports",
"./custom-ports"
],
"overlay-triplets": [ "./my-triplets" ]
}
Cet exemple ajoute un registre privé, https://github.com/microsoft/vcpkg-docs/tree/vcpkg-registry
en tant que source pour les bibliothèques beicode
et beison
. Tous les autres ports sont trouvés à partir d’un miroir interne du catalogue organisé hébergé à l’adresse https://internal/mirror/of/github.com/Microsoft/vcpkg
.
L’exemple configure également des superpositions personnalisées pour les ports et les triplets présents dans le référentiel de code source.
Champs de niveau supérieur
Nom | Type | Description |
---|---|---|
default-registry | Registre ou null | Registre utilisé pour tous les ports sans registre spécifique |
superposition de ports | string[] | Liste des chemins à utiliser comme emplacements de port de superposition |
superposer des triplets | string[] | Liste des chemins à utiliser comme triplets de superposition |
registries | Registre[] | Registres supplémentaires à utiliser pour les sous-ensembles de ports |
"default-registry"
Registre à utiliser pour tous les ports sans registre plus spécifique. Registre ou null. facultatif.
Les ports qui ne correspondent à aucun "packages"
modèle sont résolus dans le Registre par défaut. Si le Registre par défaut est spécifié comme null
, les ports qui ne correspondent pas échouent à résoudre. Si le Registre par défaut est omis, il est implicitement défini sur un Registre Builtin à l’aide de la valeur de "builtin-baseline"
"baseline"
.
"registries"
Registres supplémentaires à utiliser pour des ports spécifiques. Tableau de registres. facultatif.
"overlay-ports"
Liste des chemins de superposition de port. Tableau de chaînes. facultatif.
Chaque chemin d’accès du tableau doit nommer :
- Répertoire contenant un port, avec
vcpkg.json
etportfile.cmake
des fichiers, ou - Répertoire contenant des répertoires nommés après les ports (
zlib
vcpkg.json
doit être àzlib/vcpkg.json
).
Les chemins relatifs sont résolus par rapport au vcpkg-configuration.json
fichier. Les chemins absolus peuvent être utilisés, mais sont déconseillés.
"overlay-triplets"
Liste des chemins de superposition triplet. Tableau de chaînes. facultatif.
Chaque chemin d’accès du tableau doit pointer vers un répertoire de fichiers triplets (consultez la documentation sur les triplets). Les chemins relatifs sont résolus par rapport au vcpkg-configuration.json
fichier. Les chemins absolus peuvent être utilisés, mais sont déconseillés.
Champs du Registre
Nom | Requise | Type | Description |
---|---|---|---|
ligne de base | Registres Git et Builtin | string | Contrainte de version minimale sur tous les ports de ce Registre |
kind | Oui | string | Type de registre utilisé |
packages | Oui, si ce n’est pas le cas par défaut | string | Liste des ports à venir de ce Registre |
path | Registre du système de fichiers | string | Chemin d’accès au registre du système de fichiers |
référence | Non | string | Référence Git à utiliser pour les versions disponibles |
référentiel | Registre Git | string | URI du registre Git |
Registre : "kind"
Type de Registre utilisé. Chaîne. Obligatoire.
Valeur "kind" |
Type de Registre |
---|---|
"filesystem" |
Registre du système de fichiers |
"git" |
Registre Git |
"builtin" |
Registre intégré |
Registre : "baseline"
Identificateur spécifique au Registre pour les versions minimales à utiliser à partir de ce Registre. Chaîne. Obligatoire.
Pour les registres Git et pour le Registre intégré, il s’agit d’une sha de validation Git de 40 caractères dans le référentiel du Registre qui contient un versions/baseline.json
.
Pour les registres de système de fichiers, il peut s’agir de n’importe quel nom de propriété json valide que le registre définit sur son baseline.json
. Si un registre de systèmes de fichiers ne déclare pas de base de référence, la valeur utilisée est "default"
.
Registre : "reference"
Référence Git utilisée pour répertorier les versions disponibles d’un Registre Git. Chaîne. facultatif.
S’il n’est pas spécifié, la valeur par défaut est HEAD
. Ce champ peut être une branche de rubrique pour accéder aux versions qui ne sont pas encore entièrement publiées.
Registre : "repository"
URI du Registre Git. Chaîne. Obligatoire pour les registres Git.
La chaîne peut être n’importe quel format d’URI que Git comprend :
"https://github.com/microsoft/vcpkg"
"git@github.com:microsoft/vcpkg"
"/dev/vcpkg-registry"
Les chemins relatifs ont un comportement non spécifié qui changera dans les futures versions de vcpkg.
Registre : "path"
Chemin d’accès au Registre du système de fichiers. Chaîne. Obligatoire pour les registres de système de fichiers.
Les chemins relatifs sont résolus par rapport au vcpkg-configuration.json
.
Registre : "packages"
Liste des modèles de port attribués à ce Registre. Tableau de chaînes. Obligatoire pour tous les registres en dehors "default-registry"
.
Chaque entrée doit être :
- Nom d’un package
- Préfixe de nom de package, suivi de
*
(ajouté dans l’outil version 2022-12-14)
Les modèles de package peuvent contenir uniquement des lettres minuscules, des chiffres et -
, avec une fin *
facultative.
Exemples de modèles valides :
*
: correspond à tous les noms de portboost
: correspond uniquement au portboost
b*
: correspond aux ports qui commencent par la lettreb
boost-*
: correspond aux ports qui commencent par le préfixeboost-
Exemples de modèles non valides :
*a
(*
doit être le dernier caractère du préfixe)a**
(une seule*
est autorisée)a+
(+
n’est pas un caractère de modèle valide)a?
(?
n’est pas un caractère de modèle valide)
Consultez la documentation Using Registries pour plus d’informations sur la résolution des noms de ports.