Dela via


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 nullkan 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 och portfile.cmake filer, eller
  • En katalog som innehåller kataloger med namnet efter portarna (zlibvcpkg.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 porten boost
  • b*: Matchar portar som börjar med bokstaven b
  • boost-*: Matchar portar som börjar med prefixet boost-

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).