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