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.
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
Especifica a vinculação CRT desejada (para MSVC).
As opções válidas são dynamic
e static
.
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.
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.
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)
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
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.
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")
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
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.
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.
Veja VCPKG_MESON_NATIVE_FILE_RELEASE.
Veja VCPKG_MESON_NATIVE_FILE_RELEASE.
Veja VCPKG_MESON_NATIVE_FILE_RELEASE.
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.
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.
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"
)
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"
)
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.
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.
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.
Instrui o vcpkg a permitir variáveis de ambiente adicionais no processo de compilação sem rastreamento de abi.
Consulte VCPKG_ENV_PASSTHROUGH
.
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")
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
.
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
.
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
.
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.
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.
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
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.
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.
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.
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.
Comentários do vcpkg
O vcpkg é um projeto código aberto. Selecione um link para fornecer comentários: