vcpkg-configuration.json ファイルは、プロジェクトの manifest とvcpkg.jsonの一部を形成します。
vcpkg-configuration.json ファイル内のすべてのフィールドは、最上位プロジェクトからのみ使用されます。依存関係内のvcpkg-configuration.json ファイルは無視されます。
Manifest モードではvcpkg-configuration.jsonvcpkg.jsonの横にある別のファイルに入れるか、"configuration" fieldに埋め込むことができます。
Classic Mode では、vcpkg は vcpkg インスタンスの 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 では、"$schema"のvcpkg-configuration.jsonをこの 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/MicrosoftDocs/vcpkg-docs",
"reference": "vcpkg-registry",
"baseline": "768f6a3ad9f9b6c4c2ff390137690cf26e3c3453",
"packages": [ "beicode", "beison" ]
}
],
"overlay-ports": [
"./team-ports",
"./custom-ports"
],
"overlay-triplets": [ "./my-triplets" ]
}
この例では、ライブラリ https://github.com/MicrosoftDocs/vcpkg-docs/tree/vcpkg-registryおよびbeicodeのソースとして、プライベート レジストリbeisonを追加します。 他のすべてのポートは、 https://internal/mirror/of/github.com/Microsoft/vcpkgでホストされているキュレーション カタログの内部ミラーから検出されます。
この例では、ソース コード リポジトリに存在するポートとトリプレットのカスタム オーバーレイも構成します。
最上位フィールド
| 名前 | タイプ | 説明 |
|---|---|---|
| default-registry | レジストリ または null | 特定のレジストリがないすべてのポートで使用されるレジストリ |
| overlay-ports | 文字列[] | オーバーレイ ポートの場所として使用するパスの一覧 |
| overlay-triplets | 文字列[] | オーバーレイ トリプレットとして使用するパスの一覧 |
| レジストリ | レジストリ[] | ポートのサブセットに使用する追加のレジストリ |
"default-registry"
より具体的なレジストリがないすべてのポートに使用するレジストリ。 Registry または null。 省略可能。
"packages" パターンと一致しないポートは、既定のレジストリに解決されます。 既定のレジストリが null として指定されている場合、一致しないポートは解決に失敗します。 既定のレジストリを省略すると、の値を"builtin-baseline"として使用して"baseline"Builtin Registry に暗黙的に設定されます。
"registries"
特定のポートに使用する追加のレジストリ。 Registries の配列。 省略可能。
"overlay-ports"
ポート オーバーレイ パスの一覧。 文字列の配列。 省略可能。
配列内の各パスには、次のいずれかの名前を付けます。
-
vcpkg.jsonファイルとportfile.cmakeファイルを含むポートを含むディレクトリ。または - ポートの名前が付いたディレクトリを含むディレクトリ (
zlibのvcpkg.jsonは、zlib/vcpkg.jsonにある必要があります)。
相対パスは、 vcpkg-configuration.json ファイルを基準にして解決されます。 絶対パスは使用できますが、推奨されません。
"overlay-triplets"
トリプレット オーバーレイ パスの一覧。 文字列の配列。 省略可能。
配列内の各パスは、トリプレット ファイルのディレクトリを指す必要があります (トリプレットのドキュメントを参照してください)。 相対パスは、 vcpkg-configuration.json ファイルを基準にして解決されます。 絶対パスは使用できますが、推奨されません。
レジストリ フィールド
| 名前 | 必須 | タイプ | 説明 |
|---|---|---|---|
| ベースライン | Git レジストリと組み込みレジストリ | 文字列 | このレジストリのすべてのポートに対する最小バージョン制約 |
| 親切 | はい | 文字列 | 使用されているレジストリの種類 |
| パッケージ | はい (既定値ではない場合) | 文字列 | このレジストリから取得するポートの一覧 |
| パス | ファイルシステム レジストリ | 文字列 | ファイルシステム レジストリへのパス |
| 参照先 | いいえ | 文字列 | 使用可能なバージョンに使用する Git リファレンス |
| リポジトリ | Git レジストリ | 文字列 | 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?(?は有効なパターン文字ではありません)
ポート名の解決方法の詳細については、 レジストリの使用に関するドキュメント を参照してください。
vcpkg