O que é cache binário?
O cache binário é um recurso que permite que o vcpkg salve os arquivos compilados de um pacote em um local compartilhado e os reutilize quando solicitado a construir o mesmo pacote com a mesma configuração. Chamamos a saída produzida por cada compilação de pacote de "pacote binário".
Por que usar o cache binário?
A maioria das portas no registro com curadoria vcpkg é construída a partir do código-fonte. A criação a partir do código-fonte garante a compatibilidade máxima usando o mesmo ambiente, ferramentas de compilação e configurações que você usa para seu projeto em suas dependências. No entanto, isso também pode resultar em compilações duplicadas quando vários projetos, desenvolvedores ou máquinas exigem as mesmas dependências.
Os caches binários podem ser hospedados em uma variedade de ambientes. A forma mais básica de cache binário é um diretório que contém arquivos compactados da saída de compilação de um pacote. Cenários mais avançados incluem feeds de pacotes NuGet hospedados em GitHub Packages, Azure DevOps Artifacts ou outros serviços desse tipo.
O cache binário é especialmente eficaz em cenários em que as dependências e a configuração não mudam com frequência, como em CI (Integração Contínua) ou servidores de compilação. Os pacotes binários são particularmente suscetíveis a alterações de configuração (versão do compilador, sinalizadores de compilação, ferramentas instaladas ou alterações de script específicas do vcpkg), o que dificulta o compartilhamento entre as máquinas do desenvolvedor. Consulte vcpkg export
uma opção diferente para compartilhar pacotes compilados.
Consulte a documentação de referência de cache binário para saber mais sobre os diferentes back-ends de armazenamento.
Próximas etapas
Aqui estão outras tarefas para tentar a seguir:
- Alterar o local do cache binário padrão
- Configurar um cache binário local
- Configurar um cache binário usando um feed NuGet
- Configurar um cache binário no fluxo de trabalho do GitHub Actions usando o GitHub Packages
- Configurar um cache binário no fluxo de trabalho do GitHub Actions usando o Cache do GitHub Actions
- Autenticar em feeds NuGet privados