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/microsoft/vcpkg-docs 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/microsoft/vcpkg-docs",
"reference": "vcpkg-registry",
"baseline": "768f6a3ad9f9b6c4c2ff390137690cf26e3c3453",
"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 beicode
beison
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ů