Trigêmeos
Triplet é um termo padrão usado em compilação cruzada como uma forma de capturar completamente o ambiente de destino (CPU, sistema operacional, compilador, tempo de execução etc.) em um único nome conveniente.
Em vcpkg, trigêmeos descrevem um "conjunto de configurações de destino" imaginário para cada biblioteca. Dentro de um trigêmeo, as bibliotecas geralmente são construídas com a mesma configuração, mas isso não é um requisito. Por exemplo, você pode ter um trio que cria openssl
estática e zlib
dinamicamente, um que cria ambos estaticamente e outro que os constrói dinamicamente (tudo para o mesmo sistema operacional e arquitetura de destino).
Uma única compilação consumirá arquivos de até dois trigêmeos: o trio de destino e o trio de host. Se você precisar aplicar configurações diferentes para bibliotecas diferentes, deverá criar um único trio personalizado com essa combinação de configurações. Consulte personalização por porta para saber como fazer isso.
O vcpkg vem com trigêmeos predefinidos para muitas plataformas e configurações comuns. Execute vcpkg help triplet
para obter uma lista de trigêmeos disponíveis em seu ambiente.
Seleção de trigêmeos
Para selecionar um trio de destino:
- No modo clássico:
- Qualifique as referências de pacote com o nome do trigêmeo, como
zlib:x64-windows-static-md
. - Passe
--triplet=<triplet>
.
- Qualifique as referências de pacote com o nome do trigêmeo, como
- No CMake:
- Defina
VCPKG_TARGET_TRIPLET
.
- Defina
- No MSBuild:
- Defina
VcpkgTriplet
.
- Defina
Para selecionar o trio de host para a máquina atual:
- No modo clássico:
- Passe
--host-triplet=<triplet>
.
- Passe
- No CMake:
- Defina
VCPKG_HOST_TRIPLET
.
- Defina
- No MSBuild:
- Defina
VcpkgHostTriplet
.
- Defina
Trigêmeos comunitários
Os trigêmeos contidos na triplets\community
pasta não são testados pela integração contínua do registro selecionado, mas são comumente solicitados pela comunidade. Como não temos cobertura contínua, as atualizações de porta podem quebrar a compatibilidade com trigêmeos da comunidade. Aceitamos e revisamos com prazer as contribuições que visam resolver problemas com esses trigêmeos.
Ao usar um trigêmeo comunitário, uma mensagem como a seguinte será impressa durante a instalação de um pacote:
-- Using community triplet x86-uwp. This triplet configuration is not guaranteed to succeed.
-- [COMMUNITY] Loading triplet configuration from: D:\src\vcpkg\triplets\community\x86-uwp.cmake
Adicionar ou substituir trigêmeos
Você pode estender o vcpkg substituindo trigêmeos prontos para uso ou criando novos trigêmeos para seu projeto específico.
Primeiro, copie um arquivo triplo integrado do triplets\
diretório para um local diferente do sistema de arquivos. Em seguida, adicione esse diretório à lista de caminhos tripletos de sobreposição ao interagir com vcpkg.
- No modo Manifesto, você pode usar
$.vcpkg-configuration.overlay-triplets
o . - Ao usar o vcpkg do CMake, você pode definir
VCPKG_OVERLAY_TRIPLETS
. - Ao usar o vcpkg do MSBuild, você pode adicionar
--overlay-triplets=...
Opções Adicionais ao MSBuild. - Ao usar a CLI diretamente, você pode passar
--overlay-triplets=...
. - Você pode definir a
$VCPKG_OVERLAY_TRIPLETS
variável de ambiente como uma lista de caminhos de sobreposição.
Consulte nosso exemplo de trigêmeos de sobreposição para obter um passo a passo mais detalhado.
Observação
Os nomes de trigêmeos podem conter apenas caracteres alfanuméricos minúsculos e hífens.
Comentários
O trio padrão ao executar qualquer comando vcpkg é %VCPKG_DEFAULT_TRIPLET%
ou uma escolha específica da plataforma se essa variável de ambiente for indefinida.
- Windows:
x64-windows
- Linux:
x64-linux
- OSX:
x64-osx
Recomendamos o uso de um esquema de nomenclatura sistemático ao criar novos trigêmeos. O esquema de nomenclatura do conjunto de ferramentas do Android é uma boa fonte de inspiração: https://developer.android.com/ndk/guides/standalone_toolchain.html.