バイナリ キャッシュ

vcpkg パブリック レジストリほとんどのポートは、ソースからビルドされます。 ソースからビルドすることで、vcpkg は、プロジェクトで依存関係をビルドするために使用するのと同じ環境、ビルド ツール、コンパイラ フラグ、リンカー フラグ、およびその他の構成を使用して、最大限の互換性を確保できます。

バイナリ キャッシュを有効にすると、各パッケージがソースからビルドされた後、vcpkg によってバイナリ パッケージ作成されます。 バイナリ パッケージには、バイナリ、ビルド システム統合ファイル、使用ドキュメント、ライセンス、およびその他のファイルというパッケージのビルド出力が保持されます。 後でキャッシュされたパッケージをインストールする必要がある場合、vcpkg は、キャッシュされたバイナリ パッケージを復元するか、ソースからビルドをトリガーするかを決定します。

これにより、バイナリ キャッシュによって、ソースからのビルドの次の欠点の影響が軽減されます。

  • 重複した作業: ソースからパッケージをビルドする必要がある回数を減らすこと。
  • 長いビルド時間: バイナリ パッケージの復元は、通常、完了までに数秒かかる非常に高速な操作です。

バイナリ キャッシュは、一時的なコンテナーまたはビルド エージェントが vcpkg を毎回 クリーン スレートで動作させる CI シナリオで特に効果的です。 クラウドベースのバイナリ キャッシュ (GitHub パッケージや Azure DevOps Artifacts など) を使用すると、依存関係または構成を変更したときにのみリビルドが行われるので、実行間でバイナリ パッケージを保持して、最大限の速度を確保できます。

バイナリ分散メカニズムとしてはお勧めしませんが、バイナリ キャッシュを使用して、複数のシステムからのビルド出力を再利用できます。 たとえば、開発者は、ローカル コンピューターで CI 実行によって生成されたバイナリ パッケージを使用できます。 vcpkg で生成されたバイナリを再利用して統合する他の方法については、次を参照してください vcpkg export

ヒント

すべての継続的インテグレーション パイプラインまたはワークフローの読み取りおよび書き込みアクセス許可を持つバイナリ キャッシュを作成することをお勧めします。 個々の開発者は、CI で生成されたバイナリ キャッシュへの読み取り専用アクセス権を持っている必要があります。

バイナリ キャッシュは、さまざまな環境でホストできます。 バイナリ キャッシュの最も基本的な形式は、ローカル コンピューター上のフォルダーまたはネットワーク ファイル共有です。 キャッシュは、任意の NuGet フィード (GitHub パッケージや Azure DevOps Artifacts など)、Azure Blob Storage、Google Cloud Storage、およびその他の多くのサービスに格納することもできます。

CI プロバイダーがネイティブの "キャッシュ" 関数を提供する場合は、最もパフォーマンスの高い結果を得るために vcpkg バイナリ キャッシュとネイティブ メソッドの両方を使用することをお勧めします。

既定のバイナリ キャッシュ

バイナリ キャッシュは、次の最初の有効な場所にあるプロバイダーで既定filesで有効になっています。

  • Windows
  1. %VCPKG_DEFAULT_BINARY_CACHE%
  2. %LOCALAPPDATA%\vcpkg\archives
  3. %APPDATA%\vcpkg\archives
  • Windows 以外
  1. $VCPKG_DEFAULT_BINARY_CACHE
  2. $XDG_CACHE_HOME/vcpkg/archives
  3. $HOME/.cache/vcpkg/archives

ツール内ヘルプの削減は、次を介して vcpkg help binarycaching利用できます。

バイナリ キャッシュでは、ビルドしたバイナリのみが対象となります。 ソース ファイルと事前構築済みツールをキャッシュするには、「資産キャッシュ」を参照してください

構成構文

バイナリ キャッシュは、環境変数 VCPKG_BINARY_SOURCES (に設定) とコマンド ライン オプション--binarysource=<source>を使用して<source>;<source>;...構成されます。 オプションは、最初に環境から評価され、次にコマンド ラインから評価されます。 バイナリ キャッシュは、最後のコマンド ライン オプションとして渡 --binarysource=clear すことによって完全に無効にすることができます。

Form 説明
clear 以前のすべてのソースを無効にする (既定値を含む)
default[,<rw>] 既定 のファイル プロバイダーを追加します
files,<absolute path>[,<rw>] ファイルベースの場所を追加します
nuget,<uri>[,<rw>] NuGet ベースのソースを追加します。NuGet CLI の -Source パラメーターと同等
nugetconfig,<path>[,<rw>] NuGet-config-file ベースのソースを追加します。は、 -Config NuGet CLI のパラメーターに相当します。
nugettimeout,<seconds> NuGet ネットワーク操作のタイムアウトを指定します。は、 -Timeout NuGet CLI のパラメーターに相当します。
http,<url_template>[,<rw>[,<header>]] カスタム http ベースの場所を追加します。
x-azblob,<baseuri>,<sas>[,<rw>] 試験段階: 警告なしに変更または削除されます
Shared Access Signature を使用して Azure Blob Storage ソースを追加する
x-gcs,<prefix>[,<rw>] 試験段階: 警告なしに変更または削除されます
Google Cloud Storage (GCS) ソースを追加します。
x-aws,<prefix>[,<rw>] 試験段階: 警告なしに変更または削除されます
AWS S3 ソースを追加します。
x-aws-config,<parameter> 試験段階: 警告なしに変更または削除されます
すべての AWS S3 プロバイダーを構成します。
x-cos,<prefix>[,<rw>] 試験段階: 警告なしに変更または削除されます
Tencent Cloud Object Storage ソースを追加します。
x-gha,<rw>] 試験段階: 警告なしに変更または削除されます
ソースとして GitHub Actions キャッシュを使用します。
interactive NuGet対話型資格情報管理を有効にします (デバッグ用。コマンド ラインで必要--debug)

特定のソースの省略可能なパラメーターは<rw>、バイナリ ()(既定)、オンデマンド ビルドをそのリモート (read)、またはその両方readwrite (write) にアップロードするかどうかを制御します。

プロバイダー

AWS S3 プロバイダー

Note

このセクションでは、いつでも変更または削除できる vcpkg の試験的な機能について説明します。

x-aws,<prefix>[,<rw>]

AWS CLI を使用して AWS S3 ソースを追加します。 <プレフィックス>の先頭と末尾は 〘 で/始まるs3://必要があります。

x-aws-config,no-sign-request

AWS CLI に渡します --no-sign-request

Azure Blob Storage プロバイダー

Note

このセクションでは、いつでも変更または削除できる vcpkg の試験的な機能について説明します。

x-azblob,<baseuri>,<sas>[,<rw>]

Shared Access Signature 検証を使用して Azure Blob Storage プロバイダーを追加します。 <baseuri> には、コンテナー パスを含める必要があります。

クイックスタート

まず、Azure ストレージ アカウントとコンテナーを作成する必要があります。 手順については、 Azure Storage クイック スタートのドキュメント を参照してください。

次に、Shared Access Signature (SAS) を作成する必要があります。これは、ストレージ アカウントの 設定 ->Shared Access Signature で行うことができます。 この SAS には次のものが必要です。

  • 許可されるサービス: BLOB
  • 許可されるリソースの種類: オブジェクト
  • 許可されるアクセス許可: 読み取り (使用しているread場合) または読み取り、作成 (使用またはreadwrite使用writeしている場合)

BLOB エンドポイントとコンテナーは、プレフィックスなしで?生成された SAS として<baseuri>渡され、次のように渡す<sas>必要があります。

例:

x-azblob,https://<storagename>.blob.core.windows.net/<containername>,sv=2019-12-12&ss=b&srt=o&sp=rcx&se=2020-12-31T06:20:36Z&st=2020-12-30T22:20:36Z&spr=https&sig=abcd,readwrite

vcpkg は、通常の操作中に SAS が表示されないようにしようとしますが、次のようになります。

  1. 渡された場合 --debug は完全に印刷されます
  2. これは、コマンド ライン パラメーターとしてサブプロセスに渡されます。次に例を示します。 curl.exe

Azure Blob Storage には、特定の日数でアクセスされていないキャッシュ エントリを削除する機能が含まれています。これは、バイナリ キャッシュのサイズを自動的に管理するために使用できます。 詳細については、「Microsoft Docs のデータ ライフサイクル管理」を参照するか、ストレージ アカウントの Azure Portal でデータ管理 ->ライフサイクル管理を探します。

Tencent Cloud Object Storage プロバイダー

Note

このセクションでは、いつでも変更または削除できる vcpkg の試験的な機能について説明します。

x-cos,<prefix>[,<rw>]

COS ソースを追加します。 <prefix> で始まり cos:// 、終わる /必要があります。

ファイル プロバイダー

files,<absolute path>[,<rw>]

バイナリ キャッシュ ID に基づいて、zip 圧縮アーカイブをパスに格納します。

Google Cloud Storage プロバイダー

Note

このセクションでは、いつでも変更または削除できる vcpkg の試験的な機能について説明します。

x-gcs,<prefix>[,<rw>]

Google Cloud Storage プロバイダーを追加します。 <prefix> で始まり gs:// 、終わる /必要があります。

クイックスタート

まず、Google Cloud Platform アカウントとストレージ バケット (GCS クイック スタート) を作成する必要があります。

このクイック スタートの一環として、Google Cloud で認証するようにコマンド ライン ツールを構成 gsutil しました。 vcpkg はこのコマンド ライン ツールを使用するため、実行可能ファイルの検索パスに含まれていることを確認します。

例 1 (オブジェクトに共通のプレフィックスのないバケットを使用):

x-gcs,gs://<bucket-name>/,readwrite

例 2 (オブジェクトにバケットとプレフィックスを使用):

x-gcs,gs://<bucket-name>/my-vcpkg-cache/maybe/with/many/slashes/,readwrite
x-gcs,gs://<bucket-name>/my-vcpkg-cache/maybe/with`,commas/too!/,readwrite

コンマ (,) は、GCS のオブジェクト プレフィックスの一部として有効です。 前の例に示すように、vcpkg 構成でエスケープすることを忘れないでください。 GCS にはフォルダーがありません (一部の GCS ツールはフォルダーをシミュレートします)。 vcpkg キャッシュで使用されるプレフィックスを作成したり、操作したりする必要はありません。

GitHub Actions キャッシュ

Note

このセクションでは、いつでも変更または削除できる vcpkg の試験的な機能について説明します。

x-gha[,<rw>]

GitHub Actions キャッシュをプロバイダーとして追加します。 このバイナリ キャッシュ プロバイダーは、GitHub Actions ワークフローのコンテキストでのみ有効です。 このプロバイダーでは、環境変数とACTIONS_RUNTIME_TOKEN環境変数の両方をACTIONS_CACHE_URL設定する必要があります。 これらの環境変数を正しく設定する方法については、次のクイック スタート セクションで説明します。

クイックスタート

vcpkg で GitHub Actions Cache を使用するには、Actions Cache の URL とランタイム トークンが必要です。 これを行うには、次のようなワークフロー ステップで両方の値を環境変数としてエクスポートする必要があります。

- uses: actions/github-script@v7
  with:
    script: |
      core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
      core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');

これらの値を vcpkg コマンド ライン引数の代わりに環境変数として指定することは、GitHub Actions Cache バイナリ キャッシュ プロバイダーが GitHub Actions ワークフローからのみ使用できるため、仕様上です。

環境変数がエクスポートされたら、次のように GitHub Actions バイナリ キャッシュ プロバイダーを使用して vcpkg を実行できます。

- name: Install dependencies via vcpkg
  run: vcpkg install zlib --binarysource="clear;x-gha,readwrite"

HTTP プロバイダー

http,<url_template>[,<rw>[,<header>]]

各バイナリ キャッシュ操作は、HTTP 動詞にマップされます。

  • ダウンロード- GET
  • アップロード- PUT
  • 存在の確認 - HEAD

URL テンプレート

テンプレートでは、変数の展開に中かっこを使用します。 変数 'name'、'version'、'sha'、および 'triplet' を使用できます。 次に例を示します。

https://cache.example.com/{name}/{version}/{sha}

警告

この値は、外部プロセス呼び出しのコマンド ラインに表示される場合があり、環境にセキュリティ上の影響を与える可能性があります。

認証は、HTTP 承認ヘッダーを指定することでサポートされます。 次に例を示します。

http,https://cache.example.com/{name}/{version}/{sha},readwrite,Authorization: Bearer BearerTokenValue

NuGet プロバイダー

NuGet CLI パラメーターを使用して NuGet サーバーを -Source 追加します。

nuget,<uri>[,<rw>]

NuGet CLI パラメーターで NuGet 構成ファイルを -Config 使用します。

nugetconfig,<path>[,<rw>]

NuGet ソースのタイムアウトを構成します。

nugettimeout,<seconds>

構成ファイルでは、フィードへのパッケージの書き戻しをサポートする a defaultPushSource を定義する必要があります。

資格情報

多くの NuGet サーバーでは、アクセスするために追加の資格情報が必要です。 資格情報を提供する最も柔軟な方法は、ソースと nugetconfig カスタム nuget.config ファイルを使用することです。 詳細については、 認証済みフィード からのパッケージの使用を参照してください。

ただし、NuGet の組み込みの資格情報プロバイダーを使用するか、環境の既定値 nuget.configをカスタマイズして、多くのサーバーに対して認証を行うこともできます。 既定の構成は、次のような nuget クライアント呼び出しを介して拡張できます。

nuget sources add -Name MyRemote -Source https://... -Username $user -Password $pass

を使用して nuget,MyRemote,readwritevcpkg に渡されます。 vcpkg によって使用される NuGet の正確なコピーへのパスを取得 vcpkg fetch nugetするには、次のように報告します。

$ vcpkg fetch nuget
/vcpkg/downloads/tools/nuget-5.5.1-linux/nuget.exe

Windows 以外のユーザーは、mono mono /path/to/nuget.exe sources add ...経由でこれを呼び出す必要があります。

metadata.repository

ソース プロバイダーとnugetconfigソース プロバイダーはnuget、nuget パッケージを生成する際に特定の環境変数を尊重します。 パッケージのフィールドは metadata.repository 次のように生成されます。

    <repository type="git" url="${VCPKG_NUGET_REPOSITORY}"/>

または

    <repository type="git"
                url="${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git"
                branch="${GITHUB_REF}"
                commit="${GITHUB_SHA}"/>

適切な環境変数が定義され、空でない場合は >。 これは、GitHub Packages のパッケージをビルド プロジェクトに関連付けるために特に使用され、元のパッケージ ソースに関連付けるものではありません。

NuGet キャッシュ

NuGet のユーザー全体のキャッシュは、既定では使用されません。 すべての nuget ベースのソースに使用するには、環境変数を (大文字と小文字をtrue区別しない) または 1.VCPKG_USE_NUGET_CACHE

プロバイダーの例

選択した CI システムが一覧にない場合は、PR を送信して追加できます。

GitHub Packages

GitHub パッケージで vcpkg を使用するには、NuGet プロバイダー使用することをお勧めします。

Note

2020-09-21: GitHub のホストされるエージェントには、最新のバイナリ キャッシュをサポートしていないパスに vcpkg の古いプレインストールコピーが付属しています。 つまり、パス プレフィックスを直接呼び出すとbootstrap-vcpkgvcpkg、意図しない vcpkg インスタンスが呼び出される可能性があります。 vcpkg の独自のコピーを使用する場合は、vcpkg の独自のコピーを使用する場合の問題を回避するために、次の 2 つの手順を実行します。

  1. と同等の使用shell: 'bash'rm -rf "$VCPKG_INSTALLATION_ROOT"実行します。
  2. 常に呼び出 vcpkg し、 bootstrap-vcpkg パス プレフィックス (例: ./vcpkg, vcpkg/vcpkg, など .\bootstrap-vcpkg.bat) を使用します。
# actions.yaml
#
# In this example, vcpkg has been added as a submodule (`git submodule add https://github.com/Microsoft/vcpkg`).
env:
  VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite'

matrix:
  os: ['windows-2019', 'ubuntu-20.04']
  include:
    - os: 'windows-2019'
      triplet: 'x86-windows'
      mono: ''
    - os: 'ubuntu-20.04'
      triplet: 'x64-linux'
      # To run `nuget.exe` on non-Windows platforms, `mono` must be used.
      mono: 'mono'

steps:
  # This step assumes `vcpkg` has been bootstrapped (run `./vcpkg/bootstrap-vcpkg`)
  - name: 'Setup NuGet Credentials'
    shell: 'bash'
    # Replace <OWNER> with your organization name
    run: |
      ${{ matrix.mono }} `./vcpkg/vcpkg fetch nuget | tail -n 1` \
        sources add \
        -source "https://nuget.pkg.github.com/<OWNER>/index.json" \
        -storepasswordincleartext \
        -name "GitHub" \
        -username "<OWNER>" \
        -password "${{ secrets.GITHUB_TOKEN }}"
      ${{ matrix.mono }} `./vcpkg/vcpkg fetch nuget | tail -n 1` \
        setapikey "${{ secrets.GITHUB_TOKEN }}" \
        -source "https://nuget.pkg.github.com/<OWNER>/index.json"

  # Omit this step if you're using manifests
  - name: 'vcpkg package restore'
    shell: 'bash'
    run: >
      ./vcpkg/vcpkg install sqlite3 cpprestsdk --triplet ${{ matrix.triplet }}

マニフェストを使用している場合は、ステップをvcpkg package restore省略できます。これはビルドの一部として自動的に実行されます。

詳細については、 GitHub パッケージの NuGet ドキュメント を参照してください。

Azure DevOps Artifacts

Azure DevOps Artifacts で vcpkg を使用するには、NuGet プロバイダー使用することをお勧めします。

まず、DevOps アカウントで Artifacts が有効になっていることを確認します。 管理istrator は、Project 設定 -General ->>Overview ->Azure DevOps Services>Artifacts を使用してこれを有効にすることができます。

次に、プロジェクトのフィードを作成します。 フィード URL は、次で https:// 終わる /nuget/v3/index.jsonリンクになります。 詳細については、 Azure DevOps Artifacts のドキュメントを参照してください

パイプラインからのフィードの使用

# azure-pipelines.yaml
variables:
- name: VCPKG_BINARY_SOURCES
  value: 'clear;nuget,<FEED_URL>,readwrite'

steps:
# Remember to add this task to allow vcpkg to upload archives via NuGet
- task: NuGetAuthenticate@0

Windows OS 以外のカスタム エージェントを使用している場合は、Mono をインストールして実行nuget.exeする (apt install mono-completebrew install monoなど) 必要があります。

フィードをローカルで使用する

# On Windows Powershell
PS> & $(vcpkg fetch nuget | select -last 1) sources add `
  -name ADO `
  -Source https://pkgs.dev.azure.com/$ORG/_packaging/$FEEDNAME/nuget/v3/index.json `
  -Username $USERNAME `
  -Password $PAT
PS> $env:VCPKG_BINARY_SOURCES="nuget,ADO,readwrite"
# On Linux or OSX
$ mono `vcpkg fetch nuget | tail -n1` sources add \
  -name ADO \
  -Source https://pkgs.dev.azure.com/$ORG/_packaging/$FEEDNAME/nuget/v3/index.json \
  -Username $USERNAME \
  -Password $PAT
$ export VCPKG_BINARY_SOURCES="nuget,ADO,readwrite"

セキュリティを最大限に高めるパスワードとして、個人用アクセス トークン (PAT) を使用します。 PAT は、ユーザー 設定 ->Personal Access Tokens または https://dev.azure.com/<ORG>/_usersSettings/tokens.

ABI ハッシュ

Note

ABIハッシュに関する情報は実装上の注意事項として提供されており、予告なしに変更されます。

すべてのビルドについて、vcpkg は ABI ハッシュ計算して等価性を判断します。 2 つのビルドに同じ ABI ハッシュがある場合、vcpkg はそれらを同一と見なし、プロジェクトとマシン間でバイナリを再利用します。

ABI ハッシュでは、次の点が考慮されます。

  • ポート ディレクトリ内のすべてのファイル
  • トリプレット ファイルの内容と名前
  • C++ コンパイラ実行可能ファイル
  • C コンパイラ実行可能ファイル
  • 選択された一連の機能
  • 各依存関係の ABI ハッシュ
  • (ヒューリスティック) によって portfile.cmake 参照されるすべてのヘルパー関数
  • 使用される CMake のバージョン
  • 次に示す環境変数の内容 VCPKG_ENV_PASSTHROUGH
  • ツールチェーン ファイルのテキスト コンテンツ (VCPKG_CHAINLOAD_TOOLCHAIN_FILE)

この広範なリストにもかかわらず、キャッシュを倒し、非決定的性を導入する可能性があります。 環境に合わせて追跡する必要がある追加の詳細がある場合は、コメントに追加情報を含むトリプレット ファイルを生成できます。 その追加情報は ABI ハッシュに含まれており、バイナリの一意のユニバースを確保します。

計算された ABI ハッシュは、検査のために各パッケージと現在インストールされているディレクトリに /share/<port>/vcpkg_abi_info.txt 格納されます。

zlib の ABI ハッシュの例

デバッグ出力を有効にして、pacakge の完全なアプリケーション バイナリ インターフェイス (ABI) ハッシュを出力します。 zlib の場合:

[DEBUG] Trying to hash <path>\buildtrees\zlib\x86-windows.vcpkg_abi_info.txt
[DEBUG] <path>\buildtrees\zlib\x86-windows.vcpkg_abi_info.txt has hash bb1c96759ac96102b4b18215db138daedd3eb16c2cd3302ae7bffab2b643eb87

パッケージ zlib の ABI ハッシュbb1c96759ac96102b4b18215db138daedd3eb16c2cd3302ae7bffab2b643eb87は、バイナリ パッケージを区別するために、可能なすべての関連情報をハッシュすることによって構築されます。

コンパイラのバージョンは ABI ハッシュの一部であり、次のように計算されます。

[DEBUG] -- The C compiler identification is MSVC 19.36.32538.0
[DEBUG] -- The CXX compiler identification is MSVC 19.36.32538.0
[DEBUG] #COMPILER_HASH#f5d02a6542664cfbd4a38db478133cbb1a18f315

関連するファイル、コンパイラ、ツールのバージョン情報がハッシュされ、最終的な ABI ハッシュが計算されます。

[DEBUG] <abientries for zlib:x86-windows>
[DEBUG]   0001-Prevent-invalid-inclusions-when-HAVE_-is-set-to-0.patch|750b9542cb55e6328cca01d3ca997f1373b9530afa95e04213168676936e7bfa
[DEBUG]   0002-skip-building-examples.patch|835ddecfed752e0f49be9b0f8ff7ba76541cb0a150044327316e22ca84f8d0c2
[DEBUG]   0003-build-static-or-shared-not-both.patch|d6026271dcb3d8fc74b41e235620ae31576a798e77aa411c3af8cd9e948c02b1
[DEBUG]   0004-android-and-mingw-fixes.patch|37a43eddbcb1b7dde49e7659ae895dfd0ff1df66666c1371ba7d5bfc49d8b438
[DEBUG]   cmake|3.26.2
[DEBUG]   features|core
[DEBUG]   portfile.cmake|ac63047b644fa758860dd7ba48ff9a13b058c6f240b8e8d675b8fbba035976be
[DEBUG]   ports.cmake|5a8e00cedff0c898b1f90f7d129329d0288801bc9056562b039698caf31ff3f3
[DEBUG]   post_build_checks|2
[DEBUG]   powershell|7.3.6
[DEBUG]   triplet|x86-windows
[DEBUG]   triplet_abi|3e71dd1d4afa622894ae367adbbb1ecbd42c57c51428a86b675fa1c8cad3a581-36b818778ba6f2c16962495caedb9a7b221d5be4c60de1cd3060f549319a9931-f5d02a6542664cfbd4a38db478133cbb1a18f315
[DEBUG]   usage|be22662327df993eebc437495add75acb365ab18d37c7e5de735d4ea4f5d3083
[DEBUG]   vcpkg-cmake|1b3dac4b9b0bcbef227c954b495174863feebe3900b2a6bdef0cd1cf04ca1213
[DEBUG]   vcpkg-cmake-wrapper.cmake|5d49ef2ee6448479c2aad0e5f732e2676eaba0411860f9bebabe6002d66f57d1
[DEBUG]   vcpkg.json|bc94e2540efabe36130a806381a001c57194e7de67454ab7ff1e30aa15e6ce23
[DEBUG]   vcpkg_copy_pdbs|d57e4f196c82dc562a9968c6155073094513c31e2de475694143d3aa47954b1c
[DEBUG]   vcpkg_fixup_pkgconfig|588d833ff057d3ca99c14616c7ecfb5948b5e2a9e4fc02517dceb8b803473457
[DEBUG]   vcpkg_from_git|8f27bff0d01c6d15a3e691758df52bfbb0b1b929da45c4ebba02ef76b54b1881
[DEBUG]   vcpkg_from_github|b743742296a114ea1b18ae99672e02f142c4eb2bef7f57d36c038bedbfb0502f
[DEBUG]   vcpkg_replace_string|d43c8699ce27e25d47367c970d1c546f6bc36b6df8fb0be0c3986eb5830bd4f1
[DEBUG] </abientries>

Note

エントリtriplet_abiには、トリプレットのファイル コンテンツのハッシュ、ツールチェーン、windows.cmakeコンパイラ ハッシュの x86-windows 3 つのハッシュが含まれています。 これらのハッシュは、別のプラットフォームをターゲットにすることを決定した場合に変更されます。