Dela via


Självstudie: Installera ett beroende från ett Git-baserat register

vcpkg använder ett begrepp som kallas register för att hantera lagringsplatser för paket. Som standard hittar vcpkg bibliotek från det offentliga kurerade registret på https://github.com/Microsoft/vcpkg. Du kan lägga till tredjeparts- eller privata register för att göra ytterligare paket tillgängliga för installation.

Information om hur du skapar dina egna register finns i guiden för att publicera paket till ett register.

Register konfigureras med hjälp av en vcpkg-configuration.json fil.

I den här handledningen lär du dig att:

Förutsättningar

  • En terminal
  • En C++-compiiler
  • vcpkg
  • CMake

1 – Skapa ett projekt

Skapa följande projektfiler i en ny mapp:

En källfil (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;
}

En CMake-projektfil (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 – Skapa manifest- och konfigurationsfilerna

Kör följande kommando:

vcpkg new --application

new commmand skapar två filer: en manifestfil (vcpkg.json) och en konfigurationsfil(vcpkg-configuration.json). Vanligtvis kräver kommandot att argumenten --name och --version anges, men eftersom den här självstudien är ett slutanvändarprogram använder vi alternativet --application i stället.

De genererade filerna har följande innehåll:

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

Den genererade konfigurationsfilen innehåller två registerdefinitioner. Den default-registry som pekar på det kurerade vcpkg-registret vid https://github.com/Microsoft/vcpkgmed den senaste ändringen som baslinje, och ett ytterligare "artifacts"-register, vilket i den här självstudien är onödigt och kan tas bort.

3 – Lägga till privata register i konfigurationsfilen för vcpkg

Källkoden refererar till två bibliotek som inte är tillgängliga i det vcpkg-kurerade registret. För att uppfylla dessa beroenden måste vi lägga till https://github.com/microsoft/vcpkg-docs som ytterligare ett register.

Ändra innehållet i vcpkg-configuration.json till:

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

Konfigurationsfilen lägger till ett externt register som källa för paketen beicode och beison. Ytterligare register måste uttryckligen deklarera de paket de tillhandahåller med hjälp av listan "packages". När vcpkg mappar paketnamn till ett register, kommer alla paketnamn som inte hittas i ett ytterligare register att använda "default-registry"som standard. Läs mer om paketnamnmatchning i dokumentationen om register.

4 – Installera paket från ett register

När ett register har lagts till i konfigurationsfilen behöver inget särskilt göras för att installera paket från den. vcpkg kommer automatiskt att lösa paketnamn i din vcpkg.json till rätt register när du följer den vanliga installationsprocessen.

Lägg till beicode och beison beroenden i din vcpkg.json-fil:

vcpkg add port beicode beison

Skapa och kör projektet (ersätt $VCPKG_ROOT med installationssökvägen för vcpkg):

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

Kör programmet. Utdata bör se ut så här:

{
    "name": "demo"
}

Nästa steg

  • Lås fast dina versioner för reproducerbara byggen med versionshantering
  • Återanvända binärfiler i lokala eller kontinuerliga integreringskörningar med binär cachelagring
  • Hantera dina privata bibliotek med hjälp av anpassade register