Överläggsportar
Vanligtvis hämtas vcpkg-portar från register. Det är mycket troligt att de flesta av de portar du installerar kommer från det officiella vcpkg-registret på https://github.com/Microsoft/vcpkg. Med vcpkg kan du installera portar som är tillgängliga för dig via filsystemet, vi anropar dessa portar, överläggsportar.
En överläggsport kan fungera som en direkt ersättning för en befintlig port eller som en ny port som inte annars är tillgänglig i ett -registersystem. Även om att matcha paketnamnprioriteras överläggsportar.
Överläggsportar utvärderas i följande ordning:
- Katalogen som anges på kommandoraden via
--overlay-ports
eller namngivna underkataloger om katalogen inte har någonCONTROL
ellervcpkg.json
fil. - Katalogen som anges i en
vcpkg-configuration.json
fil viaoverlay-ports
eller namngivna underkataloger om katalogen inte har någonCONTROL
ellervcpkg.json
fil. - Katalogen som anges av
VCPKG_OVERLAY_PORTS
miljövariabelposter eller namngivna underkataloger om katalogen inte har någonCONTROL
ellervcpkg.json
fil.
När du löser portnamn väljs den första platsen som innehåller en matchande överläggsport.
Använda en överläggsport
Om en överläggsport anges försöker vcpkg först läsa in katalogen som en port. Om det lyckas behandlas själva katalogen som en port och namnet på överlägget härleds från filen CONTROL
eller vcpkg.json
. Annars beaktas underkataloger med överläggsportnamnet.
Giltiga portar innehåller portfile.cmake
och antingen vcpkg.json
eller CONTROL
.
Tänk till exempel på följande katalogstruktur:
-
x/vcpkg.json
, fältet"name"
är inställt på"a"
. -
x/portfile.cmake
, de associerade bygginstruktionerna föra
. -
x/b/vcpkg.json
,"name"
-fältet är inställt på"b"
. -
x/b/portfile.cmake
, de associerade bygginstruktionerna förb
. -
y/c/vcpkg.json
är fältet"name"
inställt på"c"
. -
y/c/portfile.cmake
, de associerade bygginstruktionerna förc
. -
y/d/vcpkg.json
är fältet"name"
inställt på"d"
. -
y/d/portfile.cmake
, de associerade bygginstruktionerna förd
.
vcpkg tar hänsyn till följande portar med följande inställningar:
-
--overlay-ports=x
: Det finns en port i det här överlägget,a
. Namnet härleds frånvcpkg.json
. Underkatalogenb
beaktas inte. -
--overlay-ports=x/b
: Det finns en port i det här överlägget,b
. Namnet härleds frånvcpkg.json
. -
--overlay-ports=y
: Det finns två portar i det här överlägget,c
ochd
. Deras namn härleds från underkatalogerna föry
och namnen som deklareras i derasvcpkg.json
måste matcha, annars genereras ett fel om vcpkg uppmanas att övervägac
ellerd
.
Du kan lägga till portkonfigurationen för överlägg på flera sätt:
- Kommandorad: Lägg till ett eller flera
--overlay-ports=<directory>
alternativ på kommandoraden. -
Manifest: Fyll i
"overlay-ports"
-arrayen ivcpkg-configuration.json
. -
Miljövariabel: Ange
VCPKG_OVERLAY_PORTS
till en sökvägsavgränsad lista.
Exempel: Exempel på överläggsportar
Med tanke på den här katalogstrukturen:
Överläggskatalogen med namnet teamportar innehåller portarna sqlite3, rapidjson och curl. Överläggskatalogen med namnet my-ports innehåller portarna sqlite3 och rapidjson. Katalogen vcpkg innehåller standardregistret.
Springa:
vcpkg install sqlite3 --overlay-ports=my-ports --overlay-ports=team-ports
Så här installerar du:
-
sqlite3
frånmy-ports
Springa:
vcpkg install sqlite3 rapidjson curl \
--overlay-ports=my-ports/rapidjson \
--overlay-ports=vcpkg/ports/curl \
--overlay-ports=team-ports
Så här installerar du:
-
sqlite3
frånteam-ports
-
rapidjson
frånmy-ports
-
curl
frånvcpkg/ports
Exempel: Använda överläggsportar för att använda ett systempakethanterarberoende
Om du vill använda ett beroende från systemets pakethanterare istället för ett vcpkg-beroende kan du läsa vårt blogginlägg.