Ler em inglês

Compartilhar via


Variáveis triplas

Este artigo descreve as variáveis vcpkg que estão disponíveis para arquivos tripletos. Um arquivo triplo 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 dos recursos de trigêmeos.

Variáveis

VCPKG_TARGET_ARCHITECTURE

Especifica a arquitetura da máquina de destino.

As opções válidas incluem x86, x64, arm, arm64ecriscv32loongarch32riscv64loongarch64s390xppc64learm64e . mips64wasm32

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 como release para compilar versões somente de lançamento dos ports. Por padrão, esse valor está vazio. Quando esse valor estiver vazio, as compilações vcpkg liberam e depuram as configurações de portas.

VCPKG_CMAKE_SYSTEM_NAME

Especifica a plataforma de destino.

As opções válidas incluem qualquer nome de sistema do 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.

Esse 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 alternativo do CMake 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.

Observação

Para criar um arquivo de cadeia de ferramentas personalizado, é melhor começar incluindo uma cadeia de ferramentas existente e ${VCPKG_ROOT}/scripts/toolchains estendê-la. Isso garante que as 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 do CMake para arquivos de cadeia de ferramentas.

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 possui formulários para sinalizadores específicos de configuração e sinalizadores 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 você definir VCPKG_CXX_FLAGS, também terá que definir VCPKG_C_FLAGS, e vice-versa. O mesmo vale para os sinalizadores específicos da configuração. Essas variáveis aceitam uma cadeia de caracteres delimitada por espaço de sinalizadores 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 sinalizadores de vinculador adicionais a serem usados durante a criação de bibliotecas dinâmicas e executáveis na ausência de VCPKG_CHAINLOAD_TOOLCHAIN_FILEarquivos .

Essa opção também possui formulários para sinalizadores específicos da 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 variáveis e específicas do VCPKG_MESON_CONFIGURE_OPTIONS_DEBUG VCPKG_MESON_CONFIGURE_OPTIONS_RELEASE tipo de compilação.

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, pois será passado depois que os arquivos cruzados/nativos gerados pelo vcpkg forem passados.

Especialmente útil para fornecer 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 do CMake que são anexadas ao comando configure (em vcpkg_cmake_configure).

Esse campo é opcional.

Também disponível como variáveis e específicas do VCPKG_CMAKE_CONFIGURE_OPTIONS_DEBUG VCPKG_CMAKE_CONFIGURE_OPTIONS_RELEASE tipo de compilação.

VCPKG_CONFIGURE_MAKE_OPTIONS

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

Esse campo é opcional.

Por exemplo, para pular certas verificações da libtool que podem falhar erroneamente:

set(VCPKG_CONFIGURE_MAKE_OPTIONS "lt_cv_deplibs_check_method=pass_all")

Também disponível como variáveis e específicas do VCPKG_CONFIGURE_MAKE_OPTIONS_DEBUG VCPKG_CONFIGURE_MAKE_OPTIONS_RELEASE tipo de compilação.

VCPKG_HASH_ADDITIONAL_FILES

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

Esse campo é opcional.

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

  • Arquivos incluídos (via include(filepath)) em trigêmeos e cadeias de ferramentas personalizados.
  • Os 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 da 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 arquivos CMake a serem incluídos após a execução de portfile.cmake.

Esse campo é opcional.

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

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

VCPKG_DEP_INFO_OVERRIDE_VARS

Observação

Esta seção cobre um recurso experimental do vcpkg que pode ser alterado ou removido a qualquer momento.

Substitui a lista computada padrão de termos "Suporta" trigêmeos.

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

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

Observação

Essa lista é extraída por meio da vcpkg_get_dep_info função auxiliar.

VCPKG_DISABLE_COMPILER_TRACKING

Aviso

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

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

Isso fará com que o cache binário reutilize compilações de compiladores mais antigos ou mais recentes.

Variáveis específicas do Windows

VCPKG_ENV_PASSTHROUGH

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

No Windows, o vcpkg cria pacotes em um ambiente limpo especial que é isolado do prompt de comando atual para garantir a confiabilidade e a consistência do build. Essa opção de trigêmeo 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 hash 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

Essa lista é extraída por meio da vcpkg_get_tags função auxiliar.

VCPKG_ENV_PASSTHROUGH_UNTRACKED

Instrui o vcpkg a permitir variáveis de ambiente adicionais no processo de compilação sem rastreamento de 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 trigêmeo ou da variável VCPKG_VISUAL_STUDIO_PATHde ambiente , ou considere-a não definida
  2. Determine a configuração para VCPKG_PLATFORM_TOOLSET a partir do trigêmeo ou considere-o não definido
  3. Reúna 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, pela 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 no Visual Studio a ser usada.

Consulte 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 a cadeia de ferramentas detalhada do compilador MSVC C/C++ a ser usada.

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. Você pode especificar um número de versão parcial ou completo. Os valores válidos são, por exemplo, 14.25 ou 14.27.29110.

VCPKG_LOAD_VCVARS_ENV

Determina se o vcpkg pesquisará e usará uma instância do Visual Studio como parte do ambiente de trigêmeos.

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

Variáveis do Linux

VCPKG_FIXUP_ELF_RPATH

Quando esta opção é definida como (true|1|on), o RUNPATH vcpkg adicionará $ORIGIN e $ORIGIN/<path_relative_to_lib> ao 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 da 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_FIXUP_MACHO_RPATH

Garante que os binários Mach-O criados pelo vcpkg sejam realocáveis usando nomes de instalação relativos e caminhos de execução.

Quando definido como ON:

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

Importante

Essa funcionalidade é ativada por padrão quando VCPKG_TARGET_IS_OSX o .TRUE Para desabilitar, defina explicitamente como OFF em um arquivo tripleto.VCPKG_FIXUP_MACHO_RPATH

Para obter 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. Isso também altera quais versões do SDK da plataforma macOS o CMake pesquisará. 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 variável PORT CMake será definida ao interpretar o arquivo tripleto. Ele pode ser usado 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á todos os qt5-* ports como bibliotecas dinâmicas, mas todos os outros ports 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.