Compartilhar via


Referência de trigêmeos

Este artigo descreve as variáveis vcpkg que estão disponíveis para arquivos triplet. Um arquivo triplet também pode incluir variáveis definidas pelo usuário.

Consulte a documentação do conceito de trigêmeos para obter uma visão de alto nível das capacidades dos trigêmeos.

Variáveis

VCPKG_TARGET_ARCHITECTURE

Especifica a arquitetura da máquina de destino.

As opções válidas incluem x86, x64, arm, arm64, arm64ec, ppc64les390x, riscv32, , riscv64, loongarch64loongarch32mips64e .wasm32

VCPKG_CRT_LINKAGE

Especifica a vinculação CRT desejada (para MSVC).

As opções válidas são dynamic e static.

VCPKG_LIBRARY_LINKAGE

Especifica a vinculação de biblioteca preferencial.

As opções válidas são dynamic e static. As bibliotecas podem ignorar essa configuração se não oferecerem suporte ao tipo de vinculação preferencial.

VCPKG_BUILD_TYPE

Você pode definir esse valor para release criar versões somente de lançamento das portas. Por padrão, esse valor está vazio. Quando esse valor está vazio, vcpkg compila, libera e depura configurações de portas.

VCPKG_CMAKE_SYSTEM_NAME

Especifica a plataforma de destino.

As opções válidas incluem qualquer nome de sistema CMake, como:

  • Vazio (Área de trabalho do Windows por motivos herdados)
  • WindowsStore (Plataforma Universal do Windows)
  • MinGW (GNU minimalista para Windows)
  • Darwin (Mac OSX)
  • iOS (iOS)
  • Linux (Linux)
  • Emscripten (WebAssembly)

VCPKG_CMAKE_SYSTEM_VERSION

Especifica a versão do sistema da plataforma de destino.

Este campo é opcional e, se presente, será passado para a compilação como CMAKE_SYSTEM_VERSION.

Consulte também a documentação do CMake para CMAKE_SYSTEM_VERSION

VCPKG_CHAINLOAD_TOOLCHAIN_FILE

Especifica um arquivo de cadeia de ferramentas CMake alternativo a ser usado.

Isso (se definido) substituirá todas as outras lógicas de detecção do compilador. Por padrão, um arquivo de cadeia de ferramentas é selecionado de scripts/toolchains/ apropriado para a plataforma.

Consulte também a documentação do CMake para arquivos toolchain.

VCPKG_CXX_FLAGS

Define sinalizadores de compilador adicionais a serem usados quando não estiver usando VCPKG_CHAINLOAD_TOOLCHAIN_FILEo .

Essa opção também tem formulários para sinalizadores específicos de configuração e sinalizadores de idioma C:

  • VCPKG_CXX_FLAGS
  • VCPKG_CXX_FLAGS_DEBUG
  • VCPKG_CXX_FLAGS_RELEASE
  • VCPKG_C_FLAGS
  • VCPKG_C_FLAGS_DEBUG
  • VCPKG_C_FLAGS_RELEASE

VCPKG_LINKER_FLAGS

Define sinalizadores de vinculador adicionais a serem usados durante a criação de bibliotecas dinâmicas e executáveis na ausência do VCPKG_CHAINLOAD_TOOLCHAIN_FILE.

Essa opção também tem formulários para sinalizadores específicos de configuração:

  • VCPKG_LINKER_FLAGS
  • VCPKG_LINKER_FLAGS_DEBUG
  • VCPKG_LINKER_FLAGS_RELEASE

VCPKG_MESON_CONFIGURE_OPTIONS

Defina opções adicionais de configuração do Meson que são anexadas ao comando configure (em vcpkg_configure_meson).

Esse campo é opcional.

Também disponível como build-type specific VCPKG_MESON_CONFIGURE_OPTIONS_DEBUG e VCPKG_MESON_CONFIGURE_OPTIONS_RELEASE variáveis.

VCPKG_MESON_NATIVE_FILE_RELEASE

Forneça um arquivo dependente de configuração adicional como um arquivo cruzado/nativo de méson. Pode ser usado para substituir as configurações fornecidas pelo vcpkg, uma vez que ele será passado depois que os arquivos cruzados/nativos gerados pelo vcpkg forem passados.

Especialmente útil para fornecer suas próprias entradas build_machine e host_machine.

VCPKG_MESON_NATIVE_FILE_DEBUG

Veja VCPKG_MESON_NATIVE_FILE_RELEASE.

VCPKG_MESON_CROSS_FILE_RELEASE

Veja VCPKG_MESON_NATIVE_FILE_RELEASE.

VCPKG_MESON_CROSS_FILE_DEBUG

Veja VCPKG_MESON_NATIVE_FILE_RELEASE.

VCPKG_CMAKE_CONFIGURE_OPTIONS

Define opções adicionais de configuração do CMake que são anexadas ao comando configure (em vcpkg_cmake_configure).

Esse campo é opcional.

Também disponível como build-type specific VCPKG_CMAKE_CONFIGURE_OPTIONS_DEBUG e VCPKG_CMAKE_CONFIGURE_OPTIONS_RELEASE variáveis.

VCPKG_CONFIGURE_MAKE_OPTIONS

Defina opções adicionais de configuração de automake/autoconf que são anexadas ao comando configure (em vcpkg_configure_make).

Esse campo é opcional.

Por exemplo, para ignorar certas verificações da libtool que podem falhar de forma errante:

set(VCPKG_CONFIGURE_MAKE_OPTIONS "lt_cv_deplibs_check_method=pass_all")

Também disponível como build-type specific VCPKG_CONFIGURE_MAKE_OPTIONS_DEBUG e VCPKG_CONFIGURE_MAKE_OPTIONS_RELEASE variáveis.

VCPKG_HASH_ADDITIONAL_FILES

Uma lista de arquivos a serem incluídos no cálculo de hashes ABI do pacote.

Esse campo é opcional.

Declare todos os arquivos que afetam o conteúdo de um pacote e devem ser considerados no cálculo do hash ABI. Por exemplo:

  • Arquivos que são incluídos (via include(filepath)) em trigêmeos personalizados e toolchains.
  • Arquivos definidos em VCPKG_MESON_(NATIVE|CROSS)_FILE_<CONFIG>

Somente o conteúdo e a ordem dos arquivos são considerados, os caminhos dos arquivos não afetam o hash ABI.

set(VCPKG_HASH_ADDITIONAL_FILES
  "${CMAKE_CURRENT_LIST_DIR}/file1.cmake"
  "${CMAKE_CURRENT_LIST_DIR}/meson-cross.txt"
)

VCPKG_DEP_INFO_OVERRIDE_VARS

Observação

Esta seção cobre uma característica experimental do vcpkg que pode mudar ou ser removida a qualquer momento.

Substitui a lista computada padrão de termos triplet "Suportes".

Essa opção (se definida) substituirá o conjunto padrão de termos usados para avaliação da Expressão de Plataforma .

Consulte a documentação do campo de arquivo de manifesto "supports" para obter mais detalhes.

Observação

Esta lista é extraída através da vcpkg_get_dep_info função auxiliar.

VCPKG_DISABLE_COMPILER_TRACKING

Aviso

Habilitar essa opção não é recomendado, pois pode levar à incompatibilidade ABI em pacotes binários restaurados. Consulte a documentação de cache binário para saber mais

Quando essa opção é definida como TRUE, ONou 1, o compilador não será rastreado como parte do pacote abis.

Isso fará com que o Binary Caching reutilize compilações de compiladores mais antigos ou mais recentes.

Variáveis específicas do Windows

VCPKG_ENV_PASSTHROUGH

Instrui vcpkg a permitir variáveis de ambiente adicionais no processo de compilação.

No Windows, vcpkg cria pacotes em um ambiente limpo especial que é isolado do prompt de comando atual para garantir a confiabilidade e a consistência da compilação. Essa opção triplete pode ser definida como uma lista de variáveis de ambiente adicionais que serão adicionadas ao ambiente limpo. Os valores dessas variáveis de ambiente serão hashed no pacote abi -- para passar por variáveis de ambiente sem rastreamento abi, consulte VCPKG_ENV_PASSTHROUGH_UNTRACKED.

Consulte também o vcpkg env comando para saber como você pode inspecionar o ambiente preciso que será usado.

Observação

Esta lista é extraída através da vcpkg_get_tags função auxiliar.

VCPKG_ENV_PASSTHROUGH_UNTRACKED

Instrui vcpkg a permitir variáveis de ambiente adicionais no processo de compilação sem rastreamento abi.

Consulte VCPKG_ENV_PASSTHROUGH.

VCPKG_VISUAL_STUDIO_PATH

Especifica a instalação do Visual Studio a ser usada.

Para selecionar a combinação precisa da instância do Visual Studio e da versão do conjunto de ferramentas, percorremos o seguinte algoritmo:

  1. Determine a configuração para VCPKG_VISUAL_STUDIO_PATH a partir do triplete, ou da variável VCPKG_VISUAL_STUDIO_PATHde ambiente, ou considere-a desconfigurada
  2. Determine a configuração para VCPKG_PLATFORM_TOOLSET a partir do triplete ou considere-a desconfigurada
  3. Reunir uma lista de todos os pares de instâncias do Visual Studio com todos os conjuntos de ferramentas disponíveis nessas instâncias
    • Isso é ordenado primeiro por tipo de instância (Estável, Pré-lançamento, Legado) e, em seguida, por versão do conjunto de ferramentas (v143, v142, v141, v140)
  4. Filtre a lista com base nas configurações de VCPKG_VISUAL_STUDIO_PATH e VCPKG_PLATFORM_TOOLSET.
  5. Selecione a melhor opção restante

O caminho deve ser absoluto, formatado com barras invertidas e não ter barra à direita:

set(VCPKG_VISUAL_STUDIO_PATH "C:\\Program Files (x86)\\Microsoft Visual Studio\\Preview\\Community")

VCPKG_PLATFORM_TOOLSET

Especifica a cadeia de ferramentas do compilador C/C++ baseada em VS, a ser usada.

Veja VCPKG_VISUAL_STUDIO_PATH o algoritmo de seleção completo.

Configurações válidas:

  • O conjunto de ferramentas da plataforma Visual Studio 2022 é v143.
  • O conjunto de ferramentas da plataforma Visual Studio 2019 é v142.
  • O conjunto de ferramentas da plataforma Visual Studio 2017 é v141.
  • O conjunto de ferramentas da plataforma Visual Studio 2015 é v140.

VCPKG_PLATFORM_TOOLSET_VERSION

Especifica o conjunto de ferramentas detalhado do compilador MSVC C/C++ a ser usado.

Por padrão, [VCPKG_PLATFORM_TOOLSET] sempre escolhe a versão secundária mais recente instalada do conjunto de ferramentas selecionado. Se você precisar de mais granularidade, poderá usar essa variável. A especificação pode ser um número de versão parcial ou total. Os valores válidos são, por exemplo, 14.25 ou 14.27.29110.

VCPKG_LOAD_VCVARS_ENV

Determina se vcpkg procurará e usará uma instância do Visual Studio como parte do ambiente triplet.

Por padrão, isso é ON para trigêmeos do Windows que não especificam VCPKG_CHAINLOAD_TOOLCHAIN_FILE. Para trigêmeos e trigêmeos que não sejam Windows, especificando VCPKG_CHAINLOAD_TOOLCHAIN_FILE, o padrão é OFF.

Variáveis do Linux

VCPKG_FIXUP_ELF_RPATH

Quando essa opção é definida como (true|1|on), vcpkg adicionará $ORIGIN e $ORIGIN/<path_relative_to_lib> ao RUNPATH cabeçalho de executáveis e bibliotecas compartilhadas. Isso permite que os pacotes sejam realocados no Linux.

Variáveis do MacOS

VCPKG_INSTALL_NAME_DIR

Define o nome de instalação usado ao criar bibliotecas dinâmicas do macOS. O valor padrão é @rpath. Consulte a documentação do CMake para obter CMAKE_INSTALL_NAME_DIR para obter mais informações.

VCPKG_OSX_DEPLOYMENT_TARGET

Define a versão mínima do macOS para binários compilados. Isso também altera quais versões do SDK da plataforma macOS o CMake procurará. Consulte a documentação do CMake para obter CMAKE_OSX_DEPLOYMENT_TARGET para obter mais informações.

VCPKG_OSX_SYSROOT

Defina o nome ou o caminho do SDK da plataforma macOS que será usado pelo CMake. Consulte a documentação do CMake para obter CMAKE_OSX_SYSROOT para obter mais informações.

VCPKG_OSX_ARCHITECTURES

Defina a arquitetura de destino do macOS / iOS que será usada pelo CMake. Consulte a documentação do CMake para obter CMAKE_OSX_ARCHITECTURES para obter mais informações.

Personalização por porta

A macro PORT CMake será definida ao interpretar o arquivo triplet e pode ser usada para alterar configurações (como VCPKG_LIBRARY_LINKAGE) por porta.

Exemplo:

set(VCPKG_LIBRARY_LINKAGE static)
if(PORT MATCHES "qt5-")
    set(VCPKG_LIBRARY_LINKAGE dynamic)
endif()

Isso criará todas as qt5-* bibliotecas como DLLs, mas todas as outras bibliotecas como uma biblioteca estática.

Para obter um exemplo em um projeto real, consulte https://github.com/Intelight/vcpkg/blob/master/triplets/x86-windows-mixed.cmake.