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.
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.
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
Aby użyć zależności menedżera pakietów systemowych za pośrednictwem vcpkg jeden, zapoznaj się z naszym wpisem w blogu.
Opinia o produkcie vcpkg
vcpkg to projekt typu open source. Wybierz link, aby przekazać opinię: