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-registryen 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 ports 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 pointer vers :

  • Répertoire de port contenant vcpkg.json et portfile.cmake
  • Répertoire contenant des répertoires de ports nommés après les ports (zlibvcpkg.jsondoit ê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 port
  • boost: correspond uniquement au port boost
  • b*: correspond aux ports qui commencent par la lettre b
  • boost-*: correspond aux ports qui commencent par le préfixe boost-

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.