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 tramite overlay-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 sia vcpkg.json che portfile.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 in vcpkg-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:

Esempio con più directory di porte sovrapposte

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 da my-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 da team-ports
  • rapidjson da my-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.