Variáveis trigêmeas

Este artigo descreve as variáveis vcpkg disponíveis para ficheiros tripletes. Um ficheiro triplet pode também incluir variáveis definidas pelo utilizador.

Consulte a documentação do conceito de trios para uma visão geral das capacidades dos trigémeos.

Variáveis

VCPKG_TARGET_ARCHITECTURE

Especifica a arquitetura da máquina alvo.

Opções válidas incluem x86, x64, arm, arm64, arm64ecs390x, ppc64le, riscv32, , riscv64, loongarch32loongarch64mips64, , e .wasm32

VCPKG_CRT_LINKAGE

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

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

VCPKG_LIBRARY_LINKAGE

Especifica a ligação da biblioteca preferida.

As opções válidas são dynamic e static. As bibliotecas podem ignorar esta configuração se não suportarem o tipo de ligação preferido.

VCPKG_BUILD_TYPE

Podes definir este valor para release construir versões apenas lançadas das portas. Por defeito, este valor está vazio. Quando este valor está vazio, o vcpkg constrói configurações de lançamento e depuração das portas.

VCPKG_CMAKE_SYSTEM_NAME

Especifica a plataforma de destino.

Opções válidas incluem qualquer nome de sistema CMake, tais como:

  • Vazio (Windows Desktop por razões legadas)
  • 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 alvo.

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

Ver também a documentação CMake para CMAKE_SYSTEM_VERSION

VCPKG_CHAINLOAD_TOOLCHAIN_FILE

Especifica um ficheiro alternativo da cadeia de ferramentas CMake para usar.

Isto (se definido) sobrepõe-se a todas as outras lógicas de deteção do compilador. Por defeito, um ficheiro de cadeia de ferramentas é selecionado como scripts/toolchains/ apropriado à plataforma.

Note

Para criar um ficheiro de cadeia de ferramentas personalizado, o melhor é começar por incluir uma cadeia ${VCPKG_ROOT}/scripts/toolchains de ferramentas existente e estendê-la. Isto garante que variáveis essenciais definidas pelo executável vcpkg, como VCPKG_TARGET_ARCHITECTURE, VCPKG_CXX_FLAGS, VCPKG_LINKER_FLAGS, e outras variáveis, sejam encaminhadas para o CMake.

Consulte também a documentação CMake para ficheiros de toolchain.

VCPKG_PROVIDED_FORTRAN

Controla se o vcpkg fornece um compilador Fortran fixo para portas que utilizam vcpkg_find_fortran().

Quando definido para ON, o vcpkg utiliza um MinGW gfortran compatível com a arquitetura em vez de procurar no ambiente anfitrião um compilador Fortran. Isto torna as compilações de pacotes independentes de outros compiladores Fortran instalados no host.

Os tripletes incorporados do Windows x86 e x64 definem esta opção para ON. O MinGW e outros trigémeos deixam-no OFF por defeito. Para selecionar um compilador Fortran diferente num triplo personalizado, defina esta opção e OFF configure o compilador em VCPKG_CHAINLOAD_TOOLCHAIN_FILE.

VCPKG_CXX_FLAGS

Define flags adicionais do compilador a serem usados quando não está a usar VCPKG_CHAINLOAD_TOOLCHAIN_FILE.

Esta opção também inclui formulários para flags específicos de configuração e flags de linguagem C:

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

Se definires VCPKG_CXX_FLAGS, também tens de definir VCPKG_C_FLAGS, e vice-versa. O mesmo se aplica às flags específicas de configuração. Estas variáveis aceitam uma sequência delimitada pelo espaço de flags do compilador:

set(VCPKG_CXX_FLAGS "/wd4996 -D_CRT_SECURE_NO_WARNINGS")
set(VCPKG_C_FLAGS "/wd4996 -D_CRT_SECURE_NO_WARNINGS")

VCPKG_LINKER_FLAGS

Define flags de ligação adicionais para serem usados na construção de bibliotecas dinâmicas e executáveis na ausência de VCPKG_CHAINLOAD_TOOLCHAIN_FILE.

Esta opção também inclui formulários para flags 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 Meson que sejam adicionadas ao comando configure (em vcpkg_configure_meson).

Este campo é opcional.

Também disponível como tipo de build específico VCPKG_MESON_CONFIGURE_OPTIONS_DEBUG e VCPKG_MESON_CONFIGURE_OPTIONS_RELEASE variável.

VCPKG_MESON_NATIVE_FILE_RELEASE

Forneça um ficheiro adicional dependente da configuração como ficheiro cruzado/nativo de mesons. Pode ser usado para sobrescrever definições fornecidas pelo vcpkg, uma vez que será passado depois de os ficheiros cruzados/nativos gerados pelo vcpkg serem passados.

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

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 CMake que são adicionadas ao comando configure (em vcpkg_cmake_configure).

Este campo é opcional.

Também disponível como tipo de build específico VCPKG_CMAKE_CONFIGURE_OPTIONS_DEBUG e VCPKG_CMAKE_CONFIGURE_OPTIONS_RELEASE variável.

VCPKG_CONFIGURE_MAKE_OPTIONS

Defina opções adicionais de automake/autoconf configure que sejam adicionadas ao comando configure (em vcpkg_configure_make).

Este campo é opcional.

Por exemplo, para saltar certos testes do libtool que podem falhar erradamente:

set(VCPKG_CONFIGURE_MAKE_OPTIONS "lt_cv_deplibs_check_method=pass_all")

Também disponível como tipo de build específico VCPKG_CONFIGURE_MAKE_OPTIONS_DEBUG e VCPKG_CONFIGURE_MAKE_OPTIONS_RELEASE variável.

VCPKG_HASH_ADDITIONAL_FILES

Uma lista de ficheiros a incluir no cálculo dos hashes ABI dos pacotes.

Este campo é opcional.

Declare quaisquer ficheiros que afetem o conteúdo de um pacote e deve ser considerado no cálculo do hash ABI. Por exemplo:

  • Ficheiros que são incluídos (via include(filepath)) em trios personalizados e cadeias de ferramentas.
  • Ficheiros que são definidos em VCPKG_MESON_(NATIVE|CROSS)_FILE_<CONFIG>

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

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

VCPKG_POST_PORTFILE_INCLUDES

Uma lista de ficheiros CMake a incluir após a execução do portfile.cmake.

Este campo é opcional.

O conteúdo e a ordem dos ficheiros são usados para o hash ABI, os caminhos dos ficheiros não afetam o hash ABI.

set(VCPKG_POST_PORTFILE_INCLUDES
  "${CMAKE_CURRENT_LIST_DIR}/file1.cmake"
  "${CMAKE_CURRENT_LIST_DIR}/file2.cmake"
)

VCPKG_DEP_INFO_OVERRIDE_VARS

Note

Esta secção abrange uma característica experimental do vcpkg que pode ser alterada ou removida a qualquer momento.

Substitui a lista padrão calculada de termos "Suporta" em tercinas.

Esta opção (se definida) substituirá o conjunto padrão de termos usados para a avaliação de Expressões de Plataforma .

Consulte a "supports" documentação do campo do ficheiro do manifesto para mais detalhes.

Note

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

VCPKG_DISABLE_COMPILER_TRACKING

Warning

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

Quando esta opção está definida para TRUE, ON, ou 1, o compilador não será rastreado como parte do pacote abis.

Isto fará com que a cache binária reutilize compilações de compiladores antigos ou mais recentes.

Variáveis específicas do Windows

VCPKG_ENV_PASSTHROUGH

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

No Windows, o vcpkg compila pacotes num ambiente especial e limpo, isolado do prompt de comandos atual, para garantir fiabilidade e consistência da compilação. Esta opção triplet pode ser definida para uma lista de variáveis adicionais do ambiente que serão adicionadas ao ambiente limpo. Os valores destas variáveis de ambiente serão inseridos no pacote abi — para passar por variáveis de ambiente sem rastreio abi, veja VCPKG_ENV_PASSTHROUGH_UNTRACKED.

Veja também o vcpkg env comando para saber como pode inspecionar o ambiente exato que será utilizado.

Note

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

VCPKG_ENV_PASSTHROUGH_UNTRACKED

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

Consulte VCPKG_ENV_PASSTHROUGH.

VCPKG_VISUAL_STUDIO_PATH

Especifica a instalação do Visual Studio a usar.

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. Determina a configuração para VCPKG_VISUAL_STUDIO_PATH a partir da tripla, ou da variável VCPKG_VISUAL_STUDIO_PATHambiente, ou considera-a não definida
  2. Determine a configuração para VCPKG_PLATFORM_TOOLSET a tercina ou considere-a não definida
  3. Reúne uma lista de todos os pares de instâncias do Visual Studio com todos os conjuntos de ferramentas disponíveis nessas instâncias
    • Isto está ordenado primeiro por tipo de instância (Estável, Pré-lançamento, Legado) e depois por versão do conjunto de ferramentas (v143, v142, v141, v140)
  4. Filtra a lista com base nas definições para VCPKG_VISUAL_STUDIO_PATH e VCPKG_PLATFORM_TOOLSET.
  5. Selecione a melhor opção restante

O caminho deve ser absoluto, formatado com barras inversas e não ter barras posteriores:

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

VCPKG_PLATFORM_TOOLSET

Especifica a cadeia de ferramentas do compilador C/C++ baseada no Visual Studio a utilizar.

Veja VCPKG_VISUAL_STUDIO_PATH para o algoritmo de seleção completo.

Definições válidas:

  • O conjunto de ferramentas da plataforma Visual Studio 2026 é v145.
  • 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.

VCPKG_PLATFORM_TOOLSET_VERSION

Especifica a cadeia detalhada de compiladores MSVC C/C++ a utilizar.

Por defeito, VCPKG_PLATFORM_TOOLSET escolhe sempre a versão menor mais recente instalada do conjunto de ferramentas selecionado. Se precisares de mais granularidade, podes usar esta variável. Pode especificar um número de versão parcial ou completo. Valores válidos são, por exemplo, 14.25 ou 14.27.29110.

VCPKG_LOAD_VCVARS_ENV

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

Por defeito, isto é ON para Windows tercinos que não especificam VCPKG_CHAINLOAD_TOOLCHAIN_FILE. Para tercinos não Windows e tercinos que especificam VCPKG_CHAINLOAD_TOOLCHAIN_FILE, isto é predefinido para OFF.

Variáveis Linux

VCPKG_FIXUP_ELF_RPATH

Quando esta opção está definida para (true|1|on), vcpkg adiciona $ORIGIN e $ORIGIN/<path_relative_to_lib> ao RUNPATH cabeçalho dos executáveis e bibliotecas partilhadas. Isto permite que pacotes sejam realocados no Linux.

Variáveis MacOS

VCPKG_INSTALL_NAME_DIR

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

VCPKG_FIXUP_MACHO_RPATH

Garante Mach-O binários construídos pelo vcpkg são relocalizáveis usando nomes de instalação e caminhos de execução relativos.

Quando definido para ON:

  • Modifica o campo absoluto LC_LC_ID_DYLIB para @rpath/<library> para binários de bibliotecas partilhadas;
  • Modifica os campos absolutos LC_RPATH para relativos @loader_path/<relative/path/to/library> para binários executáveis e de bibliotecas partilhadas.

Importante

Esta funcionalidade está ativada por defeito quando VCPKG_TARGET_IS_OSX é TRUE. Para desativar, definir VCPKG_FIXUP_MACHO_RPATH explicitamente como OFF num ficheiro triplete.

Para mais informações sobre bibliotecas dinâmicas no macOS, consulte os seguintes links:

VCPKG_OSX_DEPLOYMENT_TARGET

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

VCPKG_OSX_SYSROOT

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

VCPKG_OSX_ARCHITECTURES

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

Personalização por porta

A variável PORT CMake será definida ao interpretar o ficheiro triplete. Pode ser usado para alterar definições (como VCPKG_LIBRARY_LINKAGE) por porta.

Example:

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

Isto vai construir todas as qt5-* portas como bibliotecas dinâmicas, mas todas as outras portas como uma biblioteca estática.

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