vcpkg-configuration.json referens
Filen vcpkg-configuration.json
ingår i ett projekts manifest, tillsammans med vcpkg.json
. Alla fält i vcpkg-configuration.json
-filen används endast från projektet på den översta nivån – vcpkg-configuration.json
filer i beroenden ignoreras.
I manifestlägekan vcpkg-configuration.json
finnas i en separat fil bredvid vcpkg.json
eller bäddas in i "vcpkg-configuration" field
.
I klassiskt lägeanvänder vcpkg filen vcpkg-configuration.json
i rot för vcpkg-instansen.
En översikt över hur du använder register med vcpkg finns i Using Registries.
Det senaste JSON-schemat finns på https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json. ID:er med stöd för JSON-schema, till exempel Visual Studio och Visual Studio Code, kan använda den här filen för att tillhandahålla automatisk komplettering och syntaxkontroll. För de flesta IDE:er bör du ange "$schema"
i din vcpkg-configuration.json
till den här URL:en.
Exempel
{
"$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" ]
}
Det här exemplet lägger till ett privat register, https://github.com/microsoft/vcpkg-docs/tree/vcpkg-registry
, som källa för biblioteken beicode
och beison
. Alla andra portar hittas från en intern spegling av den kurerade katalogen som finns på https://internal/mirror/of/github.com/Microsoft/vcpkg
.
Exemplet konfigurerar även anpassade överlägg för portar och trillingar som finns i källkodslagringsplatsen.
Fält på översta nivån
Namn | Typ | Beskrivning |
---|---|---|
standardregister | Registry eller null | Register som används för alla portar utan ett specifikt register |
överläggsportar | string[] | Lista över sökvägar som ska användas som överläggsportplatser |
överläggstrillingar | string[] | Lista över sökvägar som ska användas som överläggstrillingar |
register | Registry[] | Ytterligare register som ska användas för underuppsättningar av portar |
"default-registry"
Registret som ska användas för alla portar utan ett mer specifikt register. Ett registry eller null. Valfri.
Portar som inte matchar något "packages"
mönster matchas med standardregistret. Om standardregistret anges som null
kan portar som inte matchar inte matchas. Om standardregistret utelämnas anges det implicit till ett Builtin Registry- med värdet för "builtin-baseline"
som "baseline"
.
"registries"
Ytterligare register som ska användas för specifika portar. En matris med register. Valfri.
"overlay-ports"
En lista över portöverläggssökvägar. En matris med strängar. Valfri.
Varje sökväg i matrisen måste namnge antingen:
- En katalog som innehåller en port, med
vcpkg.json
ochportfile.cmake
filer, eller - En katalog som innehåller kataloger med namnet efter portarna (
zlib
vcpkg.json
måste finnas påzlib/vcpkg.json
).
Relativa sökvägar matchas i förhållande till den vcpkg-configuration.json
filen. Absoluta sökvägar kan användas men rekommenderas inte.
"overlay-triplets"
En lista över tredubbelt överläggssökvägar. En matris med strängar. Valfri.
Varje sökväg i matrisen måste peka på en katalog med trippelfiler (se trillingdokumentationen). Relativa sökvägar matchas i förhållande till den vcpkg-configuration.json
filen. Absoluta sökvägar kan användas men rekommenderas inte.
Registerfält
Namn | Krävs | Typ | Beskrivning |
---|---|---|---|
baslinje | Git- och builtin-register | sträng | Lägsta versionsvillkor för alla portar från det här registret |
typ | Ja | sträng | Typ av register som används |
paket | Ja, om inte standard | sträng | Lista över portar som ska komma från det här registret |
sökväg | Filesystem Registry | sträng | Sökväg till filsystemregistret |
referens | Nej | sträng | Git-referens som ska användas för tillgängliga versioner |
lagringsplats | Git-register | sträng | URI för Git-registret |
Registry: "kind"
Den typ av register som används. En sträng. Krävs.
"kind" värde |
Registertyp |
---|---|
"filesystem" |
Filesystem Registry |
"git" |
Git Registry |
"builtin" |
Inbyggt register |
Registry: "baseline"
Registerspecifik identifierare för de lägsta versioner som ska användas från det här registret. En sträng. Krävs.
För Git-register och för Builtin Registryär detta en git-incheckning på 40 tecken i registrets lagringsplats som innehåller en versions/baseline.json
.
För Filesystem Registrieskan det vara ett giltigt json-egenskapsnamn som registret definierar på dess baseline.json
. Om ett filsystemregister inte deklarerar en baslinje är värdet som används "default"
.
Registry: "reference"
Git-referensen som används för att visa tillgängliga versioner av ett Git Registry-. En sträng. Valfri.
Om det inte anges är standardvärdet HEAD
. Det här fältet kan vara en ämnesgren för åtkomst till versioner som ännu inte har publicerats helt.
Registry: "repository"
URI:n för Git Registry. En sträng. Krävs för Git-register.
Strängen kan vara valfritt URI-format som Git förstår:
"https://github.com/microsoft/vcpkg"
"git@github.com:microsoft/vcpkg"
"/dev/vcpkg-registry"
Relativa sökvägar har ospecificerat beteende som ändras i framtida versioner av vcpkg.
Registry: "path"
Sökvägen till Filesystem Registry. En sträng. Krävs för Filsystemsregister.
Relativa sökvägar matchas i förhållande till vcpkg-configuration.json
.
Registry: "packages"
Listan över portmönster som tilldelats det här registret. En matris med strängar. Krävs för alla register utanför "default-registry"
.
Varje post måste vara antingen:
- Namnet på ett paket
- Ett paketnamnprefix följt av
*
(Har lagts till i verktygsversion 2022-12-14)
Paketmönster får endast innehålla gemener, siffror och -
, med en valfri avslutande *
.
Exempel på giltiga mönster:
-
*
: Matchar alla portnamn -
boost
: Matchar endast portenboost
-
b*
: Matchar portar som börjar med bokstavenb
-
boost-*
: Matchar portar som börjar med prefixetboost-
Exempel på ogiltiga mönster:
-
*a
(*
måste vara det sista tecknet i prefixet) -
a**
(endast en*
tillåts) -
a+
(+
är inte ett giltigt mönstertecken) -
a?
(?
är inte ett giltigt mönstertecken)
Mer information om hur portnamn matchas finns i dokumentationen Using Registries (Använda register).