Porte sovrapposte
In genere, le porte vcpkg vengono ottenute dai registri. È molto probabile che la maggior parte delle porte installate provengano dal registro vcpkg ufficiale in https://github.com/Microsoft/vcpkg. vcpkg consente di installare le porte disponibili tramite il file system, queste porte vengono chiamate porte sovrapposte.
Una porta di sovrimpressione può fungere da sostituzione di una porta esistente o come nuova porta altrimenti non disponibile in un Registro di sistema. Durante la risoluzione dei nomi dei pacchetti, le porte di sovrimpressione hanno priorità.
Le porte di sovrapposizione vengono valutate nell'ordine seguente:
- Percorsi sovrapposti specificati nella riga di comando tramite
--overlay-ports
. - Percorsi di sovrapposizione specificati in un
vcpkg-configuration.json
file tramiteoverlay-ports
. - Posizioni sovrapposte specificate dalla variabile di
VCPKG_OVERLAY_PORTS
ambiente.
Quando si risolve i nomi delle porte, viene selezionata la prima posizione contenente una porta di sovrapposizione corrispondente.
Uso di una porta di sovrapposizione
Una directory può rappresentare un set di porte di sovrimpressione e può essere specificata in uno dei due modi seguenti:
- Porta di sovrapposizione singola:
<directory>/sqlite3
fa riferimento a una singola porta - Directory delle porte di sovrapposizione:
<directory>
fa riferimento a una directory di porte una porta valida deve contenere siavcpkg.json
cheportfile.cmake
.
È possibile aggiungere una porta di sovrapposizione in diversi modi:
- Riga di comando: aggiungere una o più
--overlay-ports=<directory>
opzioni al comando vcpkg - Manifesto: popolare la
"overlay-ports"
matrice invcpkg-configuration.json
- Variabile ambientale: impostare
VCPKG_OVERLAY_PORTS
su un elenco di percorsi di directory
Esempio: Esempio di porte di sovrapposizione
Data questa struttura di directory:
La directory overlay denominata team-ports contiene le porte sqlite3, rapidjson e curl. La directory overlay denominata my-ports contiene le porte sqlite3 e rapidjson. La directory vcpkg contiene il Registro di sistema predefinito.
Eseguire:
vcpkg install sqlite3 --overlay-ports=my-ports --overlay-ports=team-ports
Per effettuare l'installazione:
sqlite3
damy-ports
Eseguire:
vcpkg install sqlite3 rapidjson curl
--overlay-ports=my-ports/rapidjson
--overlay-ports=vcpkg/ports/curl
--overlay-ports=team-ports
Per effettuare l'installazione:
sqlite3
dateam-ports
rapidjson
damy-ports
curl
da 'vcpkg/ports
Esempio: uso delle porte di sovrimpressione per usare una dipendenza di Gestione pacchetti di sistema
Per usare una dipendenza di System Package Manager su un vcpkg one, fare riferimento al post di blog.