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:
- Um terminal
- Um computador C++
- vcpkg
- CMake
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)
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.
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.
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"
}
- 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
Comentários do vcpkg
O vcpkg é um projeto código aberto. Selecione um link para fornecer comentários: