vcpkg-configuration.json リファレンス

vcpkg-configuration.json ファイルは、プロジェクトの manifestvcpkg.jsonの一部を形成します。 vcpkg-configuration.json ファイル内のすべてのフィールドは、最上位プロジェクトからのみ使用されます。依存関係内のvcpkg-configuration.json ファイルは無視されます。

Manifest モードではvcpkg-configuration.jsonvcpkg.jsonの横にある別のファイルに入れるか、"vcpkg-configuration" fieldに埋め込むことができます。

Classic Mode では、vcpkg は vcpkg インスタンスの root 内のvcpkg-configuration.json ファイルを使用します。

vcpkg でレジストリを使用する方法の概要については、「 レジストリの使用」を参照してください。

最新の JSON スキーマは、 https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.jsonで使用できます。 Visual Studio や Visual Studio Code などの JSON スキーマがサポートされている IDE では、このファイルを使用してオートコンプリートと構文チェックを提供できます。 ほとんどの IDE では、vcpkg-configuration.json"$schema"をこの URL に設定する必要があります。

{
  "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json",
  "default-registry": {
    "kind": "git",
    "repository": "https://internal/mirror/of/github.com/Microsoft/vcpkg",
    "baseline": "eefee7408133f3a0fef711ef9c6a3677b7e06fd7"
  },
  "registries": [
    {
      "kind": "git",
      "repository": "https://github.com/microsoft/vcpkg-docs",
      "reference": "vcpkg-registry",
      "baseline": "768f6a3ad9f9b6c4c2ff390137690cf26e3c3453",
      "packages": [ "beicode", "beison" ]
    }
  ],
  "overlay-ports": [
    "./team-ports",
    "./custom-ports"
   ],
  "overlay-triplets": [ "./my-triplets" ]
}

この例では、ライブラリ beicodeおよびbeisonのソースとして、プライベート レジストリhttps://github.com/microsoft/vcpkg-docs/tree/vcpkg-registryを追加します。 他のすべてのポートは、 https://internal/mirror/of/github.com/Microsoft/vcpkgでホストされているキュレーション カタログの内部ミラーから検出されます。

この例では、ソース コード リポジトリに存在するポートとトリプレットのカスタム オーバーレイも構成します。

最上位フィールド

名前 種類 説明
default-registry レジストリ または null 特定のレジストリがないすべてのポートで使用されるレジストリ
overlay-ports string[] オーバーレイ ポートとして使用するパスの一覧
overlay-triplets string[] オーバーレイ トリプレットとして使用するパスの一覧
registries レジストリ[] ポートのサブセットに使用する追加のレジストリ

"default-registry"

より具体的なレジストリがないすべてのポートに使用するレジストリ。 Registry または null。 省略可能。

"packages" パターンと一致しないポートは、既定のレジストリに解決されます。 既定のレジストリが null として指定されている場合、一致しないポートは解決に失敗します。 既定のレジストリを省略すると、"builtin-baseline"の値を"baseline"として使用してBuiltin Registry に暗黙的に設定されます。

"registries"

特定のポートに使用する追加のレジストリ。 Registries の配列。 省略可能。

"overlay-ports"

ポート オーバーレイ パスの一覧。 文字列の配列。 省略可能。

配列内の各パスは、次のいずれかを指す必要があります。

  • vcpkg.jsonを含むポート ディレクトリportfile.cmake
  • ポートに名前が付けられたポート ディレクトリを含むディレクトリ (zlibvcpkg.json は、 zlib/vcpkg.jsonにある必要があります)。

相対パスは、 vcpkg-configuration.json ファイルを基準にして解決されます。 絶対パスは使用できますが、推奨されません。

"overlay-triplets"

トリプレット オーバーレイ パスの一覧。 文字列の配列。 省略可能。

配列内の各パスは、トリプレット ファイルのディレクトリを指す必要があります (トリプレットのドキュメントを参照してください)。 相対パスは、 vcpkg-configuration.json ファイルを基準にして解決されます。 絶対パスは使用できますが、推奨されません。

レジストリ フィールド

名前 Required タイプ 説明
ベースライン Git レジストリと組み込みレジストリ string このレジストリのすべてのポートに対する最小バージョン制約
kind はい string 使用されているレジストリの種類
packages はい (既定値ではない場合) string このレジストリから取得するポートの一覧
path ファイルシステム レジストリ string ファイルシステム レジストリへのパス
参照先 いいえ string 使用可能なバージョンに使用する Git リファレンス
リポジトリ Git レジストリ string Git レジストリの URI

レジストリ: "kind"

使用されているレジストリの種類。 文字列。 必須。

"kind" レジストリの種類
"filesystem" ファイルシステム レジストリ
"git" Git レジストリ
"builtin" 組み込みレジストリ

レジストリ: "baseline"

このレジストリから使用する最小バージョンのレジストリ固有の識別子。 文字列。 必須。

Git Registries および Builtin Registry の場合これは、versions/baseline.jsonを含むレジストリのリポジトリ内の 40 文字の git コミット sha です。

Filesystem Registriesでは、レジストリがそのbaseline.jsonで定義する任意の有効な json プロパティ名を指定できます。 ファイルシステム レジストリでベースラインが宣言されていない場合、使用される値は "default"

レジストリ: "reference"

Git Registry の使用可能なバージョンを一覧表示するために使用される Git リファレンス。 文字列。 省略可能。

指定しない場合、既定値は HEAD。 このフィールドには、まだ完全に発行されていないバージョンにアクセスするためのトピック ブランチを指定できます。

レジストリ: "repository"

Git Registry の URI。 文字列。 Git レジストリに必要です。

この文字列には、Git で認識される任意の URI 形式を指定できます。

  • "https://github.com/microsoft/vcpkg"
  • "git@github.com:microsoft/vcpkg"
  • "/dev/vcpkg-registry"

相対パスには、将来のバージョンの vcpkg で変更される動作が指定されていません。

レジストリ: "path"

Filesystem Registry へのパス。 文字列。 ファイルシステム レジストリに必要です。

相対パスは、 vcpkg-configuration.jsonを基準にして解決されます。

レジストリ: "packages"

このレジストリに割り当てられているポート パターンの一覧。 文字列の配列。 "default-registry"外のすべてのレジストリに必要です。

各エントリは次のいずれかである必要があります。

  • パッケージの名前
  • パッケージ名のプレフィックスの後に * (ツール バージョン 2022-12-14 で追加)

パッケージ パターンには、小文字、数字、および -のみを含め、省略可能な末尾の *を指定できます。

有効なパターンの例:

  • *: すべてのポート名に一致します
  • boost: ポートのみに一致します boost
  • b*: 文字で始まるポートと一致します。 b
  • boost-*: プレフィックスで始まるポートと一致します boost-

無効なパターンの例:

  • *a (* プレフィックスの最後の文字にする必要があります)
  • a** (1 つの * のみが許可されます)
  • a+ (+ は有効なパターン文字ではありません)
  • a? (? は有効なパターン文字ではありません)

ポート名の解決方法の詳細については、 レジストリの使用に関するドキュメント を参照してください。