Kurz: Instalace závislosti z registru založeného na Gitu

Vcpkg používá ke správě úložišť balíčků koncept označovaný jako registry. Ve výchozím nastavení vcpkg najde knihovny z veřejného kurátorovaného registru na adrese https://github.com/Microsoft/vcpkg. Přidáním třetích stran nebo privátních registrů můžete zpřístupnit další balíčky pro instalaci.

Informace o vytváření vlastních registrů najdete v kurzu publikování balíčků do registru.

Registry se konfigurují pomocí vcpkg-configuration.json souboru.

V tomto kurzu se naučíte:

Požadavky

  • Terminál
  • A C++ compiiler
  • vcpkg
  • CMake

1. Vytvoření projektu

V nové složce vytvořte následující soubory projektu:

Zdrojový soubor (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;
}

Soubor projektu 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. Vytvoření manifestu a konfiguračních souborů

Spusťte následující příkaz:

vcpkg new --application

Čárka new vytvoří dva soubory: soubor manifestu (vcpkg.json) a konfigurační(vcpkg-configuration.json). Příkaz obvykle vyžaduje --name zadání argumentů a --version argumentů, ale vzhledem k tomu, že tento kurz je aplikace koncového uživatele, použijeme --application místo toho možnost.

Vygenerované soubory budou mít následující obsah:

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"
    }
  ]
}

Vygenerovaný konfigurační soubor obsahuje dvě definice registru. Který default-registry odkazuje na kurátorovaný registr vcpkg na https://github.com/Microsoft/vcpkgadrese , pomocí nejnovějšího potvrzení jako směrného plánu a dalšího "artifacts" registru, který pro účely tohoto kurzu není nutný a lze jej odstranit.

3. Přidání privátních registrů do konfiguračního souboru vcpkg

Zdrojový kód odkazuje na dvě knihovny, které nejsou k dispozici v kurátorovaném registru vcpkg. Abychom tyto závislosti splnili, musíme přidat https://github.com/NorthWindTraders/vcpkg-registry jako další registr.

Upravte obsah vcpkg-configuration.json na:

{
  "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" ]
    }
  ]
}

Konfigurační soubor přidá externí registr jako zdroj pro balíčky beicode a beison balíčky. Další registry musí explicitně deklarovat balíčky, které poskytují pomocí "packages" seznamu. Když vcpkg přeloží názvy balíčků do registru, všechny názvy balíčků, které nebyly nalezeny v dalším registru, se ve výchozím nastavení nastaví na "default-registry"hodnotu . Další informace o překladu názvů balíčků najdete v dokumentaci k registrům.

4. Instalace balíčků z registru

Jakmile se do konfiguračního souboru přidá registr, není potřeba z něj instalovat balíčky nic zvláštního. Vcpkg transparentně přeloží názvy balíčků ve vašem vcpkg.json registru do správného registru při sledování obvyklých instalačních strojů.

Přidejte do beicodebeison souboru závislosti vcpkg.json :

vcpkg add port beicode beison

Sestavte a spusťte projekt (nahraďte $VCPKG_ROOT instalační cestou vcpkg):

cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake
cmake --build build

Spusťte program, výstup by měl vypadat takto:

{
    "name": "demo"
}

Další kroky

  • Uzamčení verzí pro opakovatelné buildy pomocí správy verzí
  • Opakované použití binárních binárních souborů napříč místními nebo průběžnými spuštěními integrace s využitím binární mezipaměti
  • Správa privátních knihoven pomocí vlastních registrů