Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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_FLAGSVCPKG_CXX_FLAGS_DEBUGVCPKG_CXX_FLAGS_RELEASEVCPKG_C_FLAGSVCPKG_C_FLAGS_DEBUGVCPKG_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_FLAGSVCPKG_LINKER_FLAGS_DEBUGVCPKG_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:
- Determina a configuração para
VCPKG_VISUAL_STUDIO_PATHa partir da tripla, ou da variávelVCPKG_VISUAL_STUDIO_PATHambiente, ou considera-a não definida - Determine a configuração para
VCPKG_PLATFORM_TOOLSETa tercina ou considere-a não definida - 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)
- Filtra a lista com base nas definições para
VCPKG_VISUAL_STUDIO_PATHeVCPKG_PLATFORM_TOOLSET. - 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_DYLIBpara@rpath/<library>para binários de bibliotecas partilhadas; - Modifica os campos absolutos
LC_RPATHpara 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:
- Identificação Dinâmica de Bibliotecas
- Configuração de Padrões de Biblioteca Dinâmica para Aplicações
- Alternativa ao Caminho Completo da Biblioteca Dinâmica
- Incorporação de estruturas de código não padrão num feixe
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.