Porty nakładki
Zazwyczaj porty vcpkg są uzyskiwane z rejestrów. Jest bardzo prawdopodobne, że większość zainstalowanych portów pochodzi z oficjalnego rejestru vcpkg pod adresem https://github.com/Microsoft/vcpkg. Narzędzie vcpkg umożliwia zainstalowanie dostępnych portów za pośrednictwem systemu plików, które nazywamy tymi portami, portami nakładki.
Port nakładki może działać jako wymiana upuszczania istniejącego portu lub jako nowego portu, który w przeciwnym razie nie jest dostępny w rejestrze. Podczas rozpoznawania nazw pakietów porty nakładki mają priorytet.
Porty nakładki są oceniane w następującej kolejności:
- Katalog określony w wierszu polecenia za pośrednictwem
--overlay-ports
, lub nazwanych podkatalogów, jeśli ten katalog nieCONTROL
ma pliku lubvcpkg.json
. - Katalog określony w
vcpkg-configuration.json
pliku za pośrednictwemoverlay-ports
, lub nazwanych podkatalogów, jeśli ten katalog nieCONTROL
ma pliku lubvcpkg.json
. - Katalog określony przez
VCPKG_OVERLAY_PORTS
wpisy zmiennej środowiskowej lub nazwane podkatalogi, jeśli ten katalog nieCONTROL
ma pliku lubvcpkg.json
.
Podczas rozpoznawania nazw portów wybrano pierwszą lokalizację zawierającą pasujący port nakładki.
Korzystanie z portu nakładki
Jeśli określono port nakładki, najpierw vcpkg próbuje załadować ten katalog jako port. Jeśli to się powiedzie, sam katalog jest traktowany jako port, a nazwa nakładki pochodzi z CONTROL
pliku lub vcpkg.json
. W przeciwnym razie rozważane są podkatalogi z nazwą portu nakładki.
Prawidłowe porty zawierają portfile.cmake
wartości , i vcpkg.json
lub CONTROL
.
Rozważmy na przykład następującą strukturę katalogów:
x/vcpkg.json
"name"
, pole jest ustawione na"a"
.x/portfile.cmake
, skojarzone instrukcje kompilacji dla .a
x/b/vcpkg.json
"name"
, pole jest ustawione na"b"
.x/b/portfile.cmake
, skojarzone instrukcje kompilacji dla .b
y/c/vcpkg.json
"name"
, pole jest ustawione na"c"
.y/c/portfile.cmake
, skojarzone instrukcje kompilacji dla .c
y/d/vcpkg.json
"name"
, pole jest ustawione na"d"
.y/d/portfile.cmake
, skojarzone instrukcje kompilacji dla .d
Narzędzie vcpkg rozważy następujące porty, biorąc pod uwagę następujące ustawienia:
--overlay-ports=x
: W tej nakładce znajduje się jeden port.a
Nazwa pochodzi z .vcpkg.json
Podkatalog nie jest brany podkatalogb
.--overlay-ports=x/b
: W tej nakładce znajduje się jeden port.b
Nazwa pochodzi z .vcpkg.json
--overlay-ports=y
: W tej nakładce znajdują się dwa porty:c
id
. Ich nazwy pochodzą z podkatalogówy
, a nazwy zadeklarowane w ichvcpkg.json
musi być zgodne lub zostanie wygenerowany błąd, jeśli zostanie poproszony o rozważeniec
lubd
.
Konfigurację portu nakładki można dodać na kilka sposobów:
- Wiersz polecenia: dodaj co najmniej jedną
--overlay-ports=<directory>
opcję do wiersza polecenia. - Manifest: Wypełnij tablicę
"overlay-ports"
w plikuvcpkg-configuration.json
. - Zmienna środowiskowa: ustaw
VCPKG_OVERLAY_PORTS
na listę rozdzielaną znakami ścieżki.
Przykład: przykład portów nakładki
Biorąc pod uwagę tę strukturę katalogów:
Katalog nakładki o nazwie team-ports zawiera porty sqlite3, rapidjson i curl. Katalog nakładki o nazwie my-ports zawiera porty sqlite3 i rapidjson. Katalog vcpkg zawiera rejestr domyślny.
Uruchom:
vcpkg install sqlite3 --overlay-ports=my-ports --overlay-ports=team-ports
W celu zainstalowania stabilizatorów:
sqlite3
zmy-ports
Uruchom:
vcpkg install sqlite3 rapidjson curl
--overlay-ports=my-ports/rapidjson
--overlay-ports=vcpkg/ports/curl
--overlay-ports=team-ports
W celu zainstalowania stabilizatorów:
sqlite3
zteam-ports
rapidjson
zmy-ports
curl
zvcpkg/ports
Przykład: używanie portów nakładki do używania zależności menedżera pakietów systemowych
Aby użyć zależności menedżera pakietów systemowych za pośrednictwem vcpkg jeden, zapoznaj się z naszym wpisem w blogu.