Compartilhar via


Tutorial: Instalar uma dependência de um registro baseado em Git

O vcpkg usa um conceito chamado registros para gerenciar repositórios de pacotes. Por padrão, o vcpkg localiza bibliotecas do registro público coletado em https://github.com/Microsoft/vcpkg. Você pode adicionar registros de terceiros ou privados para disponibilizar pacotes adicionais para instalação.

Para obter informações sobre como criar seus próprios registros, leia o tutorial para publicar pacotes em um registro.

Os registros são configurados usando um vcpkg-configuration.json arquivo.

Neste tutorial, você aprenderá a:

Pré-requisitos

  • Um terminal
  • Um computador C++
  • vcpkg
  • CMake

1 - Crie um projeto

Em uma nova pasta, crie os seguintes arquivos de projeto:

Um arquivo de origem (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;
}

Um arquivo de projeto 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 – Criar os arquivos de manifesto e configuração

Execute o comando a seguir:

vcpkg new --application

O new comando cria dois arquivos: um arquivo manifest (vcpkg.json) e um arquivo configuration(vcpkg-configuration.json). Normalmente, o comando requer que os --name argumentos and --version sejam fornecidos, mas como este tutorial é um aplicativo de usuário final, usamos a --application opção.

Os arquivos gerados terão o seguinte conteúdo:

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

O arquivo de configuração gerado inclui duas definições do Registro. O default-registry que aponta para o registro vcpkg curado em https://github.com/Microsoft/vcpkg, usando o commit mais recente como linha de base e um registro adicional "artifacts" , que para o propósito deste tutorial é desnecessário e pode ser excluído.

3 - Adicione registros privados ao seu arquivo de configuração vcpkg

O código-fonte faz referência a duas bibliotecas que não estão disponíveis no registro selecionado vcpkg. Para satisfazer essas dependências, precisamos adicionar https://github.com/microsoft/vcpkg-docs como um registro adicional.

Modifique o conteúdo de vcpkg-configuration.json :

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

O arquivo de configuração adiciona um registro externo como a origem dos beicode pacotes and beison . Registros adicionais devem declarar explicitamente os pacotes que fornecem usando a "packages" lista. Quando o vcpkg resolve nomes de pacotes para um registro, qualquer nome de pacote não encontrado em um registro adicional será padronizado para o "default-registry". Saiba mais sobre a resolução de nomes de pacote na documentação dos registros.

4 – Instalar pacotes de um registro

Uma vez que um registro tenha sido adicionado ao arquivo de configuração, nada especial precisa ser feito para instalar pacotes a partir dele. O vcpkg resolverá de forma transparente os nomes dos pacotes em seu vcpkg.json registro correto ao seguir o mecanismo de instalação usual.

Adicione as beicode dependências e beison em seu vcpkg.json arquivo:

vcpkg add port beicode beison

Compile e execute o projeto (substitua $VCPKG_ROOT pelo caminho de instalação do vcpkg):

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

Execute o programa, a saída deve ficar assim:

{
    "name": "demo"
}

Próximas etapas

  • Bloquear suas versões para builds repetíveis usando controle de versão
  • Reutilizar binários em execuções de integração local ou contínua usando cache binário
  • Gerencie suas bibliotecas particulares usando registros personalizados