Překryvné porty
Porty vcpkg se obvykle získávají z registrů. Je velmi pravděpodobné, že většina portů, které instalujete, pochází z oficiálního registru vcpkg v https://github.com/Microsoft/vcpkg. Vcpkg vám umožňuje nainstalovat porty dostupné prostřednictvím systému souborů, nazýváme tyto porty, překryvné porty.
Překryvný port může fungovat jako výměna za existující port nebo jako nový port, který není v registru jinak dostupný. Při překladu názvů balíčků mají překryvné porty prioritu.
Překryvné porty se vyhodnocují v následujícím pořadí:
- Adresář zadaný v příkazovém řádku prostřednictvím
--overlay-ports
pojmenovaných podadresářů, pokud tento adresář neobsahuje žádnýCONTROL
nebovcpkg.json
soubor. - Adresář zadaný v
vcpkg-configuration.json
souboru prostřednictvímoverlay-ports
pojmenovaných podadresářů, pokud tento adresář neobsahuje žádnýCONTROL
nebovcpkg.json
soubor. - Adresář určený položkami
VCPKG_OVERLAY_PORTS
proměnných prostředí nebo pojmenovanými podadresáři, pokud tento adresář neobsahuje žádnýCONTROL
nebovcpkg.json
soubor.
Při překladu názvů portů je vybráno první umístění, které obsahuje odpovídající překryvný port.
Pokud je zadaný překryvný port, nejprve se vcpkg pokusí načíst tento adresář jako port. Pokud se to podaří, samotný adresář se považuje za port a název překrytí je odvozený od CONTROL
souboru nebo vcpkg.json
souboru. V opačném případě se považují podadresáře s názvem překryvného portu.
Platné porty obsahují portfile.cmake
a nebo vcpkg.json
CONTROL
.
Představte si například následující adresářovou strukturu:
x/vcpkg.json
, pole"name"
je nastaveno na"a"
hodnotu .x/portfile.cmake
, přidružené pokyny k sestavení proa
.x/b/vcpkg.json
, pole"name"
je nastaveno na"b"
hodnotu .x/b/portfile.cmake
, přidružené pokyny k sestavení prob
.y/c/vcpkg.json
, pole"name"
je nastaveno na"c"
hodnotu .y/c/portfile.cmake
, přidružené pokyny k sestavení proc
.y/d/vcpkg.json
, pole"name"
je nastaveno na"d"
hodnotu .y/d/portfile.cmake
, přidružené pokyny k sestavení prod
.
Vcpkg bude zvažovat následující porty s následujícími nastaveními:
--overlay-ports=x
: V tomto překryvu je jeden port.a
Název je odvozen odvcpkg.json
. Podadresářb
se nepovažuje.--overlay-ports=x/b
: V tomto překryvu je jeden port.b
Název je odvozen odvcpkg.json
.--overlay-ports=y
: V tomto překryvuc
jsou dva porty ad
. Jejich názvy jsou odvozeny z podadresářů ,y
a názvy deklarované v jejichvcpkg.json
musí odpovídat, nebo se vygeneruje chyba, pokud je vcpkg požádán o zváženíc
nebod
.
Konfiguraci překryvného portu můžete přidat několika způsoby:
- Příkazový řádek: Přidejte jednu nebo více
--overlay-ports=<directory>
možností do příkazového řádku. - Manifest: Naplňte
"overlay-ports"
pole vvcpkg-configuration.json
. - Proměnná prostředí: Nastaví
VCPKG_OVERLAY_PORTS
se na seznam s oddělovači znaků cesty.
Vzhledem k této adresářové struktuře:
Překryvný adresář s názvem team-ports obsahuje porty sqlite3, rapidjson a curl. Překryvný adresář s názvem my-ports obsahuje porty sqlite3 a rapidjson. Adresář vcpkg obsahuje výchozí registr.
Run (Spuštění):
vcpkg install sqlite3 --overlay-ports=my-ports --overlay-ports=team-ports
Instalace:
sqlite3
odmy-ports
Run (Spuštění):
vcpkg install sqlite3 rapidjson curl
--overlay-ports=my-ports/rapidjson
--overlay-ports=vcpkg/ports/curl
--overlay-ports=team-ports
Instalace:
sqlite3
odteam-ports
rapidjson
odmy-ports
curl
odvcpkg/ports
Pokud chcete použít závislost správce systémových balíčků nad vcpkg, přečtěte si náš blogový příspěvek.
Zpětná vazba k produktu vcpkg
vcpkg je open source projekt. Vyberte odkaz pro poskytnutí zpětné vazby: