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:
- Terminal
- Compiiler języka C++
- vcpkg
- CMake
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)
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ąć.
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/microsoft/vcpkg-docs 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/microsoft/vcpkg-docs",
"reference": "vcpkg-registry",
"baseline": "768f6a3ad9f9b6c4c2ff390137690cf26e3c3453",
"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.
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"
}
- 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
Opinia o produkcie vcpkg
vcpkg to projekt typu open source. Wybierz link, aby przekazać opinię: