Samouczek: instalowanie zależności z rejestru opartego na usłudze Git

Narzędzie vcpkg używa koncepcji nazywanej rejestrami do zarządzania repozytoriami pakietów. Domyślnie program vcpkg wyszukuje biblioteki z publicznego rejestru wyselekcjonowanych pod adresem https://github.com/Microsoft/vcpkg. Możesz dodać rejestry innych firm lub prywatnych, aby udostępnić dodatkowe pakiety do zainstalowania.

Aby uzyskać informacje na temat tworzenia własnych rejestrów, zapoznaj się z samouczkiem dotyczącym publikowania pakietów w rejestrze.

Rejestry są konfigurowane przy użyciu vcpkg-configuration.json pliku.

Z tego samouczka dowiesz się, jak wykonywać następujące elementy:

Wymagania wstępne

  • Terminal
  • Compiiler języka C++
  • vcpkg
  • CMake

1 — Tworzenie projektu

W nowym folderze utwórz następujące pliki projektu:

Plik źródłowy (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;
}

Plik 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 — Tworzenie plików manifestu i konfiguracji

Uruchom następujące polecenie:

vcpkg new --application

Commmand new tworzy dwa pliki: plik manifestu (vcpkg.json) i plik configuration(vcpkg-configuration.json). Zazwyczaj polecenie wymaga --name podania argumentów i --version , ale ponieważ ten samouczek jest aplikacją użytkownika końcowego, zamiast tego użyjemy --application opcji .

Wygenerowane pliki będą miały następującą zawartość:

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

Wygenerowany plik konfiguracji zawiera dwie definicje rejestru. Element default-registry , który wskazuje na wyselekcjonowany rejestr vcpkg w witrynie https://github.com/Microsoft/vcpkg, używając najnowszego zatwierdzenia jako punktu odniesienia i dodatkowego "artifacts" rejestru, który na potrzeby tego samouczka jest niepotrzebny i można go usunąć.

3 — Dodawanie prywatnych rejestrów do pliku konfiguracji programu vcpkg

Kod źródłowy odwołuje się do dwóch bibliotek, które nie są dostępne w rejestrze wyselekcjonowanych narzędzi vcpkg. Aby spełnić te zależności, musimy dodać https://github.com/NorthWindTraders/vcpkg-registry go jako dodatkowy rejestr.

Zmodyfikuj zawartość elementu 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" ]
    }
  ]
}

Plik konfiguracji dodaje rejestr zewnętrzny jako źródło pakietów beicode i beison . Dodatkowe rejestry muszą jawnie zadeklarować pakiety, które udostępniają przy użyciu "packages" listy. Gdy program vcpkg rozpoznaje nazwy pakietów w rejestrze, każda nazwa pakietu, która nie zostanie znaleziona w dodatkowym rejestrze, zostanie domyślnie ustawiona na "default-registry". Dowiedz się więcej o rozpoznawaniu nazw pakietów w dokumentacji rejestrów.

4 — Instalowanie pakietów z rejestru

Po dodaniu rejestru do pliku konfiguracji nie trzeba wykonywać żadnych specjalnych czynności w celu zainstalowania z niego pakietów. Narzędzie vcpkg będzie w sposób niewidoczny rozpoznawać nazwy pakietów w vcpkg.json twoim rejestrze podczas wykonywania zwykłych maszyn instalacyjnych.

Dodaj zależności beicode i beison w vcpkg.json pliku:

vcpkg add port beicode beison

Skompiluj i uruchom projekt (zastąp element $VCPKG_ROOT ścieżką instalacji programu vcpkg):

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

Uruchom program. Dane wyjściowe powinny wyglądać następująco:

{
    "name": "demo"
}

Następne kroki

  • Blokowanie wersji dla powtarzalnych kompilacji przy użyciu przechowywania wersji
  • Ponowne używanie plików binarnych w ramach uruchamiania integracji lokalnej lub ciągłej przy użyciu buforowania binarnego
  • Zarządzanie bibliotekami prywatnymi przy użyciu rejestrów niestandardowych