チュートリアル: Git ベースのレジストリから依存関係をインストールする
vcpkg は、パッケージのリポジトリを管理するためにレジストリと呼ばれる概念を使用します。 既定では、vcpkg はパブリックキュレーション レジストリ https://github.com/Microsoft/vcpkgからライブラリを検索します。 サード パーティまたはプライベート レジストリを追加して、追加のパッケージをインストールできるようにします。
独自のレジストリの作成については、パッケージをレジストリに発行するチュートリアルを参照してください。
レジストリはファイルを vcpkg-configuration.json
使用して構成されます。
このチュートリアルでは、次の事項について説明します。
前提条件
- ターミナル
- C++ コンフィラー
- vcpkg
- CMake
1 - プロジェクトを作成する
新しいフォルダーに、次のプロジェクト ファイルを作成します。
ソース ファイル (main.cpp
):
#include <iostream>
#include <beison.h>
int main()
{
beison::Object obj;
obj.insert("name", beison::Value::string("demo"));
std::cout << beison::stringify(obj) << std::endl;
return 0;
}
CMake プロジェクト ファイル (CMakeLists.txt
):
cmake_minimum_required(VERSION 3.18)
project(demo CXX)
add_executable(main main.cpp)
find_package(beicode CONFIG REQUIRED)
find_package(beison CONFIG REQUIRED)
target_link_libraries(main PRIVATE beicode::beicode beison::beison)
2 - マニフェストと構成ファイルを作成する
次のコマンドを実行します。
vcpkg new --application
コマンドはnew
、マニフェスト () ファイルと configuration(vcpkg.json
vcpkg-configuration.json
) ファイルの 2 つのファイルを作成します。 通常、このコマンドでは引数と引数--version
を--name
指定する必要がありますが、このチュートリアルはエンドユーザー アプリケーションであるため、代わりにこのオプションを--application
使用します。
生成されたファイルの内容は次のとおりです。
vcpkg.json
{}
vcpkg-configuration.json
{
"default-registry": {
"kind": "git",
"baseline": "7476f0d4e77d3333fbb249657df8251c28c4faae",
"repository": "https://github.com/microsoft/vcpkg"
},
"registries": [
{
"kind": "artifact",
"location": "https://github.com/microsoft/vcpkg-ce-catalog/archive/refs/heads/main.zip",
"name": "microsoft"
}
]
}
生成された構成ファイルには、2 つのレジストリ定義が含まれています。 最新のdefault-registry
コミットをベースラインとして使用して、キュレーションされた vcpkg レジストリhttps://github.com/Microsoft/vcpkgを指し示すレジストリと、このチュートリアルの目的で不要であり、削除できる追加"artifacts"
のレジストリ。
3 - vcpkg 構成ファイルにプライベート レジストリを追加する
ソース コードは、vcpkg キュレーション レジストリで使用できない 2 つのライブラリを参照します。 これらの依存関係を満たすためには、追加のレジストリとして追加 https://github.com/NorthWindTraders/vcpkg-registry する必要があります。
次の vcpkg-configuration.json
内容を変更します。
{
"default-registry": {
"kind": "git",
"baseline": "7476f0d4e77d3333fbb249657df8251c28c4faae",
"repository": "https://github.com/microsoft/vcpkg"
},
"registries": [
{
"kind": "git",
"repository": "https://github.com/northwindtraders/vcpkg-registry",
"baseline": "dacf4de488094a384ca2c202b923ccc097956e0c",
"packages": [ "beicode", "beison" ]
}
]
}
構成ファイルは、外部レジストリをパッケージのソースbeicode
beison
として追加します。 追加のレジストリでは、リストを使用して提供するパッケージを明示的に宣言する "packages"
必要があります。 vcpkg がパッケージ名をレジストリに解決すると、追加のレジストリに見つからないパッケージ名は既定 "default-registry"
で . パッケージの名前解決の詳細については、レジストリのドキュメントを参照してください。
4 - レジストリからパッケージをインストールする
構成ファイルにレジストリが追加されたら、そこからパッケージをインストールするために特別な作業を行う必要はありません。vcpkg は、通常のインストール機構に従うと、正しいレジストリに vcpkg.json
パッケージ名を透過的に解決します。
ファイルに beicode
依存関係と beison
依存関係を vcpkg.json
追加します。
vcpkg add port beicode beison
プロジェクトをビルドして実行します (vcpkg のインストール パスに置き換えてください $VCPKG_ROOT
)。
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake
cmake --build build
プログラムを実行すると、出力は次のようになります。
{
"name": "demo"
}
次のステップ
- バージョン管理を使用して 反復可能なビルドのバージョンをロックダウンする
- バイナリ キャッシュを使用して ローカルまたは継続的インテグレーションの実行間でバイナリを再利用する
- カスタム レジストリを使用してプライベート ライブラリを管理する
vcpkg
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示