Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


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 nie CONTROL ma pliku lub vcpkg.json .
  • Katalog określony w vcpkg-configuration.json pliku za pośrednictwem overlay-ports, lub nazwanych podkatalogów, jeśli ten katalog nie CONTROL ma pliku lub vcpkg.json .
  • Katalog określony przez VCPKG_OVERLAY_PORTS wpisy zmiennej środowiskowej lub nazwane podkatalogi, jeśli ten katalog nie CONTROL ma pliku lub vcpkg.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.cmakewartoś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 podkatalog b .
  • --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 i d. Ich nazwy pochodzą z podkatalogów y, a nazwy zadeklarowane w ich vcpkg.json musi być zgodne lub zostanie wygenerowany błąd, jeśli zostanie poproszony o rozważenie c lub d.

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 pliku vcpkg-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:

Przykład z wieloma katalogami portów nakładki

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 z my-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 z team-ports
  • rapidjson z my-ports
  • curl z vcpkg/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.