オーバーレイ ポート

通常、vcpkg ポートはレジストリから取得されます。 インストールするポートのほとんどは、公式のvcpkgレジストリから来る可能性が非常に高いです https://github.com/Microsoft/vcpkg. vcpkg を使用すると、ファイル システム経由で使用可能なポートをインストールできます。これらのポートはオーバーレイ ポートと呼びます。

オーバーレイ ポートは、既存のポートのドロップイン代替として、またはレジストリ使用できない新しいポートとして機能できます。 パッケージ名の解決中は、オーバーレイ ポートが優先されます。

オーバーレイ ポートは、次の順序で評価されます。

  • コマンド ライン --overlay-portsで指定されたオーバーレイの場所。
  • を介してoverlay-portsファイルで指定された場所をvcpkg-configuration.jsonオーバーレイします。
  • 環境変数で指定されたオーバーレイの VCPKG_OVERLAY_PORTS 場所。

ポート名を解決するときに、一致するオーバーレイ ポートを含む最初の場所が選択されます。

オーバーレイ ポートの使用

ディレクトリはオーバーレイ ポートのセットを表し、次の 2 つの方法のいずれかで指定できます。

  • シングル オーバーレイ ポート: <directory>/sqlite3 1 つのポートを参照します。
  • オーバーレイ ポートのディレクトリ: <directory> ポートのディレクトリを参照します。有効なポートには、次の両方 vcpkg.jsonportfile.cmake含める必要があります。

オーバーレイ ポートは、いくつかの方法で追加できます。

  • コマンド ライン: vcpkg コマンドに 1 つまたは複数の --overlay-ports=<directory> オプションを追加する
  • マニフェスト: 次の配列を設定します "overlay-ports"vcpkg-configuration.json
  • 環境変数: ディレクトリ パスの一覧に設定VCPKG_OVERLAY_PORTS

例: オーバーレイ ポートの例

このディレクトリ構造を考えると、

Example with multiple overlay port directories

team-ports という名前のオーバーレイ ディレクトリには、sqlite3、rapidjson、curl のポートが含まれています。 my-ports という名前のオーバーレイ ディレクトリには、ポート sqlite3 と rapidjson が含まれています。 vcpkg ディレクトリには、既定のカタログが含まれています。

走る (Run):

vcpkg install sqlite3 --overlay-ports=my-ports --overlay-ports=team-ports

インストールするには、次のようにします。

  • my-ports からの sqlite3

走る (Run):

vcpkg install sqlite3 rapidjson curl 
    --overlay-ports=my-ports/rapidjson 
    --overlay-ports=vcpkg/ports/curl
    --overlay-ports=team-ports

インストールするには、次のようにします。

  • team-ports からの sqlite3
  • my-ports からの rapidjson
  • curl 'vcpkg/ports から

例: オーバーレイ・ポートを使用してシステム・パッケージ・マネージャーの依存関係を使用する

vcpkg の依存関係に対してシステム パッケージ マネージャーの依存関係を使用するには、ブログ記事参照してください。