dokumentacja vcpkg-configuration.json

Plik vcpkg-configuration.json stanowi część manifestu projektu wraz z elementem vcpkg.json. Wszystkie pola w vcpkg-configuration.json pliku są używane tylko z projektu najwyższego poziomu — vcpkg-configuration.json pliki w dowolnych zależnościach są ignorowane.

W trybievcpkg-configuration.json manifestu może znajdować się w osobnym pliku vcpkg.json lub można go osadzić w "vcpkg-configuration" fieldpliku .

W trybie klasycznym narzędzie vcpkg będzie używać vcpkg-configuration.json pliku w katalogu głównym wystąpienia programu vcpkg.

Aby zapoznać się z omówieniem używania rejestrów z narzędziem vcpkg, zobacz Using Registries (Korzystanie z rejestrów).

Najnowszy schemat JSON jest dostępny pod adresem https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json. Środowiska IDE z obsługą schematu JSON, takie jak Visual Studio i Visual Studio Code, mogą używać tego pliku do automatycznego uzupełniania i sprawdzania składni. W przypadku większości identyfikatorów IDE należy ustawić "$schema" ten vcpkg-configuration.json adres URL.

Przykład

{
  "$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" ]
}

W tym przykładzie dodano prywatny rejestr , https://github.com/microsoft/vcpkg-docs/tree/vcpkg-registryjako źródło bibliotek beicode i beison. Wszystkie inne porty znajdują się z wewnętrznego dublowania katalogu nadzorowanego hostowanego w lokalizacji https://internal/mirror/of/github.com/Microsoft/vcpkg.

W tym przykładzie skonfigurowaliśmy również niestandardowe nakładki dla portów i trojaków, które znajdują się w repozytorium kodu źródłowego.

Pola najwyższego poziomu

Nazwisko Pisz Opis
rejestr domyślny Rejestr lub wartość null Rejestr używany dla wszystkich portów bez określonego rejestru
porty nakładki string[] Lista ścieżek do użycia jako porty nakładki
nakładanie trójkropków string[] Lista ścieżek do użycia jako potrójne nakładki
Rejestrów Rejestr[] Dodatkowe rejestry do użycia w podzestawach portów

"default-registry"

Rejestr do użycia dla wszystkich portów bez bardziej szczegółowego rejestru. Rejestr lub wartość null. Opcjonalny.

Porty, które nie pasują do żadnego "packages" wzorca, są rozpoznawane jako rejestr domyślny. Jeśli domyślny rejestr jest określony jako null, porty, które nie są zgodne, nie powiedzie się rozpoznać. Jeśli domyślny rejestr zostanie pominięty, zostanie niejawnie ustawiony na wartość Builtin Registry przy użyciu wartości "builtin-baseline" typu "baseline".

"registries"

Dodatkowe rejestry do użycia dla określonych portów. Tablica rejestrów. Opcjonalny.

"overlay-ports"

Lista ścieżek nakładki portów. Tablica ciągów. Opcjonalny.

Każda ścieżka w tablicy musi wskazywać jedną z następujących wartości:

  • Katalog portów vcpkg.json zawierający i portfile.cmake
  • Katalog zawierający katalogi portów o nazwie po portach (zlibmusi vcpkg.json mieć wartość zlib/vcpkg.json).

Ścieżki względne są rozpoznawane względem vcpkg-configuration.json pliku. Ścieżki bezwzględne mogą być używane, ale nie są zniechęcane.

"overlay-triplets"

Lista ścieżek nakładki potrójnej. Tablica ciągów. Opcjonalny.

Każda ścieżka w tablicy musi wskazywać katalog plików potrójnych (zobacz dokumentację trójkątów). Ścieżki względne są rozpoznawane względem vcpkg-configuration.json pliku. Ścieżki bezwzględne mogą być używane, ale nie są zniechęcane.

Pola rejestru

Nazwisko Wymagania Type Opis
linia bazowa Rejestry git i wbudowane string Ograniczenie minimalnej wersji na wszystkich portach z tego rejestru
rodzaj Tak string Typ używanego rejestru
Pakiety Tak, jeśli nie jest to ustawienie domyślne string Lista portów, które mają pochodzić z tego rejestru
path Rejestr systemu plików string Ścieżka do rejestru systemu plików
odniesienie Nie. string Dokumentacja usługi Git do użycia w przypadku dostępnych wersji
repozytorium Rejestr Git string Identyfikator URI rejestru Git

Rejestr: "kind"

Typ używanego rejestru. Ciąg. Wymagany.

"kind" Wartość Typ rejestru
"filesystem" Rejestr systemu plików
"git" Rejestr Git
"builtin" Rejestr builtin

Rejestr: "baseline"

Identyfikator specyficzny dla rejestru dla minimalnych wersji do użycia z tego rejestru. Ciąg. Wymagany.

W przypadku rejestrów Git i wbudowanego rejestru jest to 40-znakowy algorytm sha zatwierdzania git w repozytorium rejestru zawierający element versions/baseline.json.

W przypadku rejestrów systemu plików może to być dowolna prawidłowa nazwa właściwości json, którą rejestr definiuje na jego baseline.json. Jeśli rejestr systemu plików nie deklaruje punktu odniesienia, użyta wartość to "default".

Rejestr: "reference"

Dokumentacja usługi Git używana do wyświetlania listy dostępnych wersji rejestru Git. Ciąg. Opcjonalny.

Jeśli nie zostanie określony, wartość domyślna to HEAD. To pole może być gałęzią tematu, aby uzyskać dostęp do wersji, które nie zostały jeszcze w pełni opublikowane.

Rejestr: "repository"

Identyfikator URI rejestru Git. Ciąg. Wymagane w rejestrach Git.

Ciąg może mieć dowolny format identyfikatora URI, który rozumie usługa Git:

  • "https://github.com/microsoft/vcpkg"
  • "git@github.com:microsoft/vcpkg"
  • "/dev/vcpkg-registry"

Ścieżki względne mają nieokreślone zachowanie, które zmieni się w przyszłych wersjach programu vcpkg.

Rejestr: "path"

Ścieżka do rejestru systemu plików. Ciąg. Wymagane w rejestrach systemu plików.

Ścieżki względne są rozpoznawane względem .vcpkg-configuration.json

Rejestr: "packages"

Lista wzorców portów przypisanych do tego rejestru. Tablica ciągów. Wymagane dla wszystkich rejestrów poza "default-registry"programem .

Każdy wpis musi być:

  • Nazwa pakietu
  • Prefiks nazwy pakietu, a następnie * (dodano w narzędziu w wersji 2022-12-14)

Wzorce pakietów mogą zawierać tylko małe litery, cyfry i -, z opcjonalnym końcowym znakiem *.

Przykłady prawidłowych wzorców:

  • *: Pasuje do wszystkich nazw portów
  • boost: Pasuje tylko do portu boost
  • b*: Pasuje do portów rozpoczynających się literą b
  • boost-*: Pasuje do portów rozpoczynających się od prefiksu boost-

Przykłady nieprawidłowych wzorców:

  • *a (* musi być ostatnim znakiem w prefiksie)
  • a**(dozwolone jest tylko jedno)*
  • a+ (+ nie jest prawidłowym znakiem wzorca)
  • a? (? nie jest prawidłowym znakiem wzorca)

Aby uzyskać więcej informacji na temat sposobu rozpoznawania nazw portów, zobacz dokumentację Using Registries (Korzystanie z rejestrów).