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" field
pliku .
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-registry
jako ź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 lokalizacje portów 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 mieć nazwę:
- Katalog zawierający port z plikami
vcpkg.json
i lubportfile.cmake
- Katalog zawierający katalogi nazwane po portach (
zlib
musivcpkg.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ówboost
: Pasuje tylko do portuboost
b*
: Pasuje do portów rozpoczynających się literąb
boost-*
: Pasuje do portów rozpoczynających się od prefiksuboost-
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).