vcpkg-configuration.json-verwijzing
Het bestand vcpkg-configuration.json
maakt deel uit van het manifest van een project, samen met vcpkg.json
. Alle velden in het vcpkg-configuration.json
-bestand worden alleen gebruikt vanuit het project op het hoogste niveau. De vcpkg-configuration.json
bestanden in afhankelijkheden worden genegeerd.
In manifestmoduskan vcpkg-configuration.json
zich in een afzonderlijk bestand naast vcpkg.json
bevinden of in de "vcpkg-configuration" field
worden ingesloten.
In klassieke modusgebruikt vcpkg het vcpkg-configuration.json
bestand in de hoofdmap van het vcpkg-exemplaar.
Zie Registries gebruikenvoor een overzicht van het gebruik van registers met vcpkg.
Het nieuwste JSON-schema is beschikbaar op https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json. IDE's met ondersteuning voor JSON-schema's, zoals Visual Studio en Visual Studio Code, kunnen dit bestand gebruiken om automatisch aanvullen en syntaxiscontrole te bieden. Voor de meeste IDE's moet u "$schema"
instellen in uw vcpkg-configuration.json
op deze URL.
Voorbeeld
{
"$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" ]
}
In dit voorbeeld wordt een privéregister, https://github.com/microsoft/vcpkg-docs/tree/vcpkg-registry
, toegevoegd als de bron voor de bibliotheken beicode
en beison
. Alle andere poorten zijn te vinden vanuit een interne spiegel van de gecureerde catalogus die wordt gehost op https://internal/mirror/of/github.com/Microsoft/vcpkg
.
In het voorbeeld worden ook aangepaste overlays geconfigureerd voor poorten en tripletten die aanwezig zijn in de opslagplaats voor broncode.
Velden op het hoogste niveau
Naam | Type | Beschrijving |
---|---|---|
standaardregister | register of null | Register dat wordt gebruikt voor alle poorten zonder een specifiek register |
overlaypoorten | tekenreeks[] | Lijst met paden die moeten worden gebruikt als overlaypoortlocaties |
overlay-drietallen | tekenreeks[] | Lijst met paden die moeten worden gebruikt als overlay-triplets |
registers | Register[] | Aanvullende registers die moeten worden gebruikt voor subsets van poorten |
"default-registry"
Het register dat moet worden gebruikt voor alle poorten zonder een specifieker register. Een Register of null. Facultatief.
Poorten die niet overeenkomen met een "packages"
patroon, worden omgezet in het standaardregister. Als het standaardregister is opgegeven als null
, kunnen poorten die niet overeenkomen, niet worden omgezet. Als het standaardregister wordt weggelaten, wordt het impliciet ingesteld op een Ingebouwde register- met behulp van de waarde van "builtin-baseline"
als de "baseline"
.
"registries"
Aanvullende registers die moeten worden gebruikt voor specifieke poorten. Een matrix van registers. Facultatief.
"overlay-ports"
Een lijst met poortoverlaypaden. Een matrix met tekenreeksen. Facultatief.
Elk pad in de matrix moet een van de volgende namen hebben:
- Een map met een poort, met
vcpkg.json
- enportfile.cmake
-bestanden, of - Een map met mappen die zijn vernoemd naar de poorten (
zlib
vcpkg.json
moet zich opzlib/vcpkg.json
bevinden).
Relatieve paden worden omgezet ten opzichte van het vcpkg-configuration.json
-bestand. Absolute paden kunnen worden gebruikt, maar worden afgeraden.
"overlay-triplets"
Een lijst met drievoudige overlaypaden. Een matrix met tekenreeksen. Facultatief.
Elk pad in de matrix moet verwijzen naar een map met drievoudige bestanden (raadpleeg de documentatie van driedubbele drievoudige bestanden). Relatieve paden worden omgezet ten opzichte van het vcpkg-configuration.json
-bestand. Absolute paden kunnen worden gebruikt, maar worden afgeraden.
Registervelden
Naam | Vereist | Type | Beschrijving |
---|---|---|---|
basislijn | Git- en ingebouwde registers | snaar | Minimale versiebeperking voor alle poorten uit dit register |
soort | Ja | snaar | Soort register dat wordt gebruikt |
pakketten | Ja, indien niet standaard | snaar | Lijst met poorten die afkomstig zijn van dit register |
pad | Bestandssysteemregister | snaar | Pad naar het bestandssysteemregister |
Nee | snaar | Git-verwijzing die moet worden gebruikt voor beschikbare versies | |
opslagplaats | Git-register | snaar | URI van het Git-register |
Registry-: "kind"
Het type register dat wordt gebruikt. Een tekenreeks. Vereist.
"kind" waarde |
Registertype |
---|---|
"filesystem" |
bestandssysteemregister |
"git" |
Git Registry- |
"builtin" |
Ingebouwde register- |
Registry-: "baseline"
De registerspecifieke id voor de minimale versies die uit dit register moeten worden gebruikt. Een tekenreeks. Vereist.
Voor Git-registers en voor de Ingebouwde register-, is dit een git-doorvoer sha van 40 tekens in de opslagplaats van het register die een versions/baseline.json
bevat.
Voor bestandssysteemregisterskan het elke geldige json-eigenschapsnaam zijn die het register op de baseline.json
definieert. Als een bestandssysteemregister geen basislijn declareert, wordt de gebruikte waarde "default"
.
Registry-: "reference"
De Git-verwijzing die wordt gebruikt om beschikbare versies van een Git Registryweer te geven. Een tekenreeks. Facultatief.
Als dit niet is opgegeven, wordt standaard ingesteld op HEAD
. Dit veld kan een onderwerpbranch zijn voor toegang tot versies die nog niet volledig zijn gepubliceerd.
Registry-: "repository"
De URI van de Git Registry-. Een tekenreeks. Vereist voor Git-registers.
De tekenreeks kan elke URI-indeling zijn die Git begrijpt:
"https://github.com/microsoft/vcpkg"
"git@github.com:microsoft/vcpkg"
"/dev/vcpkg-registry"
Relatieve paden hebben niet-opgegeven gedrag dat zal veranderen in toekomstige versies van vcpkg.
Registry-: "path"
Het pad naar het bestandssysteemregister. Een tekenreeks. Vereist voor bestandssysteemregisters.
Relatieve paden worden omgezet ten opzichte van de vcpkg-configuration.json
.
Registry-: "packages"
De lijst met poortpatronen die aan dit register zijn toegewezen. Een matrix met tekenreeksen. Vereist voor alle registers buiten "default-registry"
.
Elke vermelding moet een van de volgende zijn:
- De naam van een pakket
- Een voorvoegsel voor de pakketnaam, gevolgd door
*
(toegevoegd in hulpprogrammaversie 2022-12-14)
Pakketpatronen mogen alleen kleine letters, cijfers en -
bevatten, met een optionele volg-*
.
Voorbeelden van geldige patronen:
-
*
: komt overeen met alle poortnamen -
boost
: komt alleen overeen met de poortboost
-
b*
: komt overeen met poorten die beginnen met de letterb
-
boost-*
: komt overeen met poorten die beginnen met het voorvoegselboost-
Voorbeelden van ongeldige patronen:
-
*a
(*
moet het laatste teken in het voorvoegsel zijn) -
a**
(slechts één*
is toegestaan) -
a+
(+
is geen geldig patroonteken) -
a?
(?
is geen geldig patroonteken)
Zie de documentatie Met behulp van registers voor meer informatie over hoe poortnamen worden omgezet.