Partilhar 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 as bibliotecas do registo público curado em https://github.com/Microsoft/vcpkg. Você pode adicionar registros privados ou de terceiros para disponibilizar pacotes adicionais para instalação.

Para obter informações sobre como criar os seus próprios registos, leia o tutorial para publicar pacotes num registo.

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

Neste tutorial, você aprenderá a:

Pré-requisitos

  • Um terminal
  • Um compilador C++
  • VCPKG
  • CMake

1 - Criar um projeto

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

Um ficheiro 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 ficheiro 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 - Crie os arquivos de manifesto e configuração

Execute o seguinte comando:

vcpkg new --application

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

Os ficheiros gerados terão os seguintes conteúdos:

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 registo vcpkg curado em https://github.com/Microsoft/vcpkg, usando o commit mais recente como linha de base , e um registo adicional "artifacts", que para o propósito deste tutorial é desnecessário e pode ser eliminado.

3 - Adicione registos privados ao seu ficheiro de configuração vcpkg

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

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

{
  "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 para os pacotes beicode e beison. Os registos adicionais devem declarar explicitamente os pacotes que fornecem utilizando a lista "packages". Quando o vcpkg resolve nomes de pacotes para um registro, qualquer nome de pacote não encontrado num registro adicional será automaticamente atribuído ao "default-registry". Saiba mais sobre resolução de nome de pacote na documentação dos registros.

4 - Instalar pacotes a partir de um registo

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

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

vcpkg add port beicode beison

Construa 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 ter esta aparência:

{
    "name": "demo"
}

Próximos passos

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