次の方法で共有


チュートリアル: 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.jsonvcpkg-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" ]
    }
  ]
}

構成ファイルは、外部レジストリをパッケージのソースbeicodebeisonとして追加します。 追加のレジストリでは、リストを使用して提供するパッケージを明示的に宣言する "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"
}

次のステップ