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
, arm64ec
riscv32
loongarch32
riscv64
loongarch64
s390x
ppc64le
arm64
e . mips64
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 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_FILE
o .
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_FILE
arquivos .
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:
- Determine a configuração para
VCPKG_VISUAL_STUDIO_PATH
a partir do trigêmeo ou da variávelVCPKG_VISUAL_STUDIO_PATH
de ambiente , ou considere-a não definida - Determine a configuração para
VCPKG_PLATFORM_TOOLSET
a partir do trigêmeo ou considere-o não definido - 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)
- Filtre a lista com base nas configurações de
VCPKG_VISUAL_STUDIO_PATH
eVCPKG_PLATFORM_TOOLSET
. - 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:
- Identificação dinâmica de bibliotecas
- Configuração padrão da Biblioteca Dinâmica para aplicativos
- Alternativa de caminho completo da biblioteca dinâmica
- Incorporando estruturas de código não padrão em um pacote
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.