Variables triples
En este artículo se describen las variables vcpkg que están disponibles para los archivos triplet. Un archivo triplet también puede incluir variables definidas por el usuario.
Consulte la documentación del concepto de tripletos para obtener una vista general de las funcionalidades de triplete.
Especifica la arquitectura de la máquina de destino.
Las opciones válidas incluyen x86
, x64
, arm
, arm64
, ppc64le
riscv64
loongarch32
riscv32
s390x
arm64ec
, , loongarch64
, , mips64
y .wasm32
Especifica la vinculación de CRT deseada (para MSVC).
Las opciones válidas son: dynamic
y static
.
Especifica la vinculación de biblioteca preferida.
Las opciones válidas son: dynamic
y static
. Las bibliotecas pueden omitir esta configuración si no admiten el tipo de vinculación preferido.
Puede establecer este valor en release
para compilar versiones de solo versión de los puertos.
De forma predeterminada, este valor está vacío. Cuando este valor está vacío, vcpkg compila configuraciones de versión y depuración de puertos.
Especifica la plataforma de destino.
Entre las opciones válidas se incluyen cualquier nombre del sistema de CMake, como:
- Vacío (Escritorio de Windows por motivos heredados)
WindowsStore
(Plataforma universal de Windows)MinGW
(GNU minimalista para Windows)Darwin
(Mac OSX)iOS
(iOS)Linux
(Linux)Emscripten
(WebAssembly)
Especifica la versión del sistema de plataforma de destino.
Este campo es opcional y, si está presente, se pasará a la compilación como CMAKE_SYSTEM_VERSION
.
Consulte también la documentación de CMake para CMAKE_SYSTEM_VERSION
Especifica un archivo de cadena de herramientas de CMake alternativo que se va a usar.
Esto (si se establece) invalidará la lógica de detección del compilador. De forma predeterminada, se selecciona un archivo de cadena de herramientas de scripts/toolchains/
la plataforma correspondiente.
Nota
Para crear un archivo de cadena de herramientas personalizado, es mejor empezar por incluir una cadena de herramientas existente desde ${VCPKG_ROOT}/scripts/toolchains
y ampliarla. Esto garantiza que las variables esenciales establecidas por el ejecutable vcpkg, como VCPKG_TARGET_ARCHITECTURE
, VCPKG_CXX_FLAGS
, VCPKG_LINKER_FLAGS
y otras variables se reenvieron a CMake.
Consulte también la documentación de CMake para archivos de cadena de herramientas.
Establece marcas de compilador adicionales que se van a usar cuando no se usa VCPKG_CHAINLOAD_TOOLCHAIN_FILE
.
Esta opción también tiene formularios para marcas específicas de configuración y marcas de lenguaje C:
VCPKG_CXX_FLAGS
VCPKG_CXX_FLAGS_DEBUG
VCPKG_CXX_FLAGS_RELEASE
VCPKG_C_FLAGS
VCPKG_C_FLAGS_DEBUG
VCPKG_C_FLAGS_RELEASE
Si establece VCPKG_CXX_FLAGS
, también tiene que establecer VCPKG_C_FLAGS
y viceversa.
Lo mismo sucede con las marcas específicas de la configuración. Estas variables aceptan una cadena delimitada por espacios de marcas del compilador:
set(VCPKG_CXX_FLAGS "/wd4996 -D_CRT_SECURE_NO_WARNINGS")
set(VCPKG_C_FLAGS "/wd4996 -D_CRT_SECURE_NO_WARNINGS")
Establece marcas de enlazador adicionales que se usarán al compilar bibliotecas dinámicas y ejecutables en ausencia de VCPKG_CHAINLOAD_TOOLCHAIN_FILE
.
Esta opción también tiene formularios para marcas específicas de la configuración:
VCPKG_LINKER_FLAGS
VCPKG_LINKER_FLAGS_DEBUG
VCPKG_LINKER_FLAGS_RELEASE
Establezca opciones adicionales de configuración de Meson que se anexan al comando configure (en vcpkg_configure_meson
).
Este campo es opcional.
También está disponible como variables y VCPKG_MESON_CONFIGURE_OPTIONS_RELEASE
específicas VCPKG_MESON_CONFIGURE_OPTIONS_DEBUG
del tipo de compilación.
Proporcione un archivo dependiente de configuración adicional como un archivo entre meson y nativo. Se puede usar para invalidar la configuración proporcionada por vcpkg, ya que se pasará después de que se pasen los archivos nativos o cruzados generados de vcpkg.
Especialmente útil para proporcionar sus propias entradas de build_machine y host_machine.
Consulte VCPKG_MESON_NATIVE_FILE_RELEASE.
Consulte VCPKG_MESON_NATIVE_FILE_RELEASE.
Consulte VCPKG_MESON_NATIVE_FILE_RELEASE.
Establece opciones adicionales de configuración de CMake que se anexan al comando configure (en vcpkg_cmake_configure
).
Este campo es opcional.
También está disponible como variables y VCPKG_CMAKE_CONFIGURE_OPTIONS_RELEASE
específicas VCPKG_CMAKE_CONFIGURE_OPTIONS_DEBUG
del tipo de compilación.
Establezca opciones adicionales de configuración de automake/autoconf que se anexan al comando configure (en vcpkg_configure_make
).
Este campo es opcional.
Por ejemplo, para omitir determinadas comprobaciones de libtool que pueden producir un error errante:
set(VCPKG_CONFIGURE_MAKE_OPTIONS "lt_cv_deplibs_check_method=pass_all")
También está disponible como variables y VCPKG_CONFIGURE_MAKE_OPTIONS_RELEASE
específicas VCPKG_CONFIGURE_MAKE_OPTIONS_DEBUG
del tipo de compilación.
Lista de archivos que se van a incluir en el cálculo de hashes abi del paquete.
Este campo es opcional.
Declare los archivos que afecten al contenido de un paquete y se debe tener en cuenta en el cálculo del hash abi. Por ejemplo:
- Archivos que se incluyen (a través
include(filepath)
de ) en tripletos personalizados y cadenas de herramientas. - Archivos definidos en
VCPKG_MESON_(NATIVE|CROSS)_FILE_<CONFIG>
Solo se tienen en cuenta el contenido y el orden de los archivos, las rutas de acceso de los archivos no afectan al hash abi.
set(VCPKG_HASH_ADDITIONAL_FILES
"${CMAKE_CURRENT_LIST_DIR}/file1.cmake"
"${CMAKE_CURRENT_LIST_DIR}/meson-cross.txt"
)
Lista de archivos CMake que se van a incluir después de la ejecución de portfile.cmake.
Este campo es opcional.
El contenido y el orden de los archivos se usan para el hash abi, las rutas de acceso de los archivos no afectan al hash abi.
set(VCPKG_POST_PORTFILE_INCLUDES
"${CMAKE_CURRENT_LIST_DIR}/file1.cmake"
"${CMAKE_CURRENT_LIST_DIR}/file2.cmake"
)
Nota
En esta sección se describe una característica experimental de vcpkg que puede cambiar o quitarse en cualquier momento.
Reemplaza la lista calculada predeterminada de términos de triplet "Supports".
Esta opción (si se establece) invalidará el conjunto predeterminado de términos usados para la evaluación de expresiones de plataforma.
Consulte la documentación del "supports"
campo del archivo de manifiesto para obtener más detalles.
Nota
Esta lista se extrae a través de la vcpkg_get_dep_info
función auxiliar.
Advertencia
No se recomienda habilitar esta opción, ya que puede provocar incompatibilidad de ABI en los paquetes binarios restaurados. Consulte la documentación del almacenamiento en caché binario para obtener más información.
Cuando esta opción se establece TRUE
en , ON
o 1
, no se realizará el seguimiento del compilador como parte del paquete abis.
Esto hará que el almacenamiento en caché binario reutilice las compilaciones de compiladores más antiguos o más recientes.
Indica a vcpkg que permita variables de entorno adicionales en el proceso de compilación.
En Windows, vcpkg compila paquetes en un entorno limpio especial que está aislado del símbolo del sistema actual para garantizar la confiabilidad y la coherencia de la compilación. Esta opción triplet se puede establecer en una lista de variables de entorno adicionales que se agregarán al entorno limpio. Los valores de estas variables de entorno se aplicarán hash a la abi del paquete: para pasar a través de variables de entorno sin seguimiento abi, consulte VCPKG_ENV_PASSTHROUGH_UNTRACKED
.
Consulte también el vcpkg env
comando para ver cómo puede inspeccionar el entorno preciso que se usará.
Nota
Esta lista se extrae a través de la vcpkg_get_tags
función auxiliar.
Indica a vcpkg que permita variables de entorno adicionales en el proceso de compilación sin seguimiento abi.
Especifica la instalación de Visual Studio que se va a usar.
Para seleccionar la combinación precisa de la versión de instancia y conjunto de herramientas de Visual Studio, se explica el siguiente algoritmo:
- Determine la configuración de
VCPKG_VISUAL_STUDIO_PATH
desde el triplet o la variableVCPKG_VISUAL_STUDIO_PATH
de entorno , o considere que no está establecida. - Determinar la configuración de
VCPKG_PLATFORM_TOOLSET
desde el triplet o considerar que no está establecida - Recopilación de una lista de todos los pares de instancias de Visual Studio con todos los conjuntos de herramientas disponibles en esas instancias
- Esto se ordena primero por tipo de instancia (Estable, Versión preliminar, Heredada) y, a continuación, por versión del conjunto de herramientas (v143, v142, v141, v140)
- Filtre la lista en función de la configuración de
VCPKG_VISUAL_STUDIO_PATH
yVCPKG_PLATFORM_TOOLSET
. - Seleccione la mejor opción restante.
La ruta de acceso debe tener el formato absoluto, con barras diagonales inversas y no tener ninguna barra diagonal final:
set(VCPKG_VISUAL_STUDIO_PATH "C:\\Program Files (x86)\\Microsoft Visual Studio\\Preview\\Community")
Especifica la cadena de herramientas del compilador de C/C++ basada en Visual Studio que se va a usar.
Consulte VCPKG_VISUAL_STUDIO_PATH
para obtener el algoritmo de selección completo.
Configuración válida:
- El conjunto de herramientas de la plataforma de Visual Studio 2022 es
v143
. - El conjunto de herramientas de la plataforma de Visual Studio 2019 es
v142
. - El conjunto de herramientas de la plataforma de Visual Studio 2017 es
v141
. - El conjunto de herramientas de la plataforma de Visual Studio 2015 es
v140
.
Especifica la cadena de herramientas del compilador de MSVC C/C++ detallada que se va a usar.
De forma predeterminada, VCPKG_PLATFORM_TOOLSET
siempre elige la versión secundaria instalada más reciente del conjunto de herramientas seleccionado. Si necesita más granularidad, puede usar esta variable. Puede especificar un número de versión parcial o completo. Los valores válidos son, por ejemplo, 14.25
o 14.27.29110
.
Determina si vcpkg buscará y usará una instancia de Visual Studio como parte del entorno triplet.
De forma predeterminada, esto es ON
para los tripletes de Windows que no especifican VCPKG_CHAINLOAD_TOOLCHAIN_FILE
. Para los tripletes y los tripletes que no son de Windows que especifican VCPKG_CHAINLOAD_TOOLCHAIN_FILE
, este valor predeterminado es OFF
.
Cuando esta opción se establece en (true|1|on), vcpkg agregará $ORIGIN
y $ORIGIN/<path_relative_to_lib>
al RUNPATH
encabezado de ejecutables y bibliotecas compartidas. Esto permite reubicar paquetes en Linux.
Establece el nombre de instalación usado al compilar bibliotecas dinámicas de macOS. El valor predeterminado es @rpath
. Consulte la documentación de CMake para CMAKE_INSTALL_NAME_DIR para obtener más información.
Garantiza que los archivos binarios de Mach-O creados por vcpkg se pueden reasignar mediante nombres de instalación relativos y rutas de acceso de ejecución.
Cuando se establece en ON
:
- Modifica el campo absoluto
LC_LC_ID_DYLIB
a@rpath/<library>
para los archivos binarios de biblioteca compartida; - Modifica los campos absolutos
LC_RPATH
a relativos@loader_path/<relative/path/to/library>
a los archivos binarios de la biblioteca compartida y ejecutables.
Importante
Esta funcionalidad está habilitada de forma predeterminada cuando VCPKG_TARGET_IS_OSX
es TRUE
. Para deshabilitarlo, establezca VCPKG_FIXUP_MACHO_RPATH
OFF
explícitamente en en un archivo triplet.
Para obtener más información sobre las bibliotecas dinámicas en macOS, consulte los vínculos siguientes:
- Identificación de biblioteca dinámica
- Configuración estándar de biblioteca dinámica para aplicaciones
- Alternativa de ruta de acceso completa de biblioteca dinámica
- Inserción de estructuras de código no estándar en una agrupación
Establece la versión mínima de macOS para los archivos binarios compilados. Esto también cambia las versiones del SDK de la plataforma macOS que buscará CMake. Consulte la documentación de CMake para CMAKE_OSX_DEPLOYMENT_TARGET para obtener más información.
Establezca el nombre o la ruta de acceso del SDK de la plataforma macOS que usará CMake. Consulte la documentación de CMake para CMAKE_OSX_SYSROOT para obtener más información.
Establezca la arquitectura de destino de macOS/iOS que usará CMake. Consulte la documentación de CMake para CMAKE_OSX_ARCHITECTURES para obtener más información.
La variable PORT
CMake se establecerá al interpretar el archivo triple. Se puede usar para cambiar la configuración (como VCPKG_LIBRARY_LINKAGE
) por puerto.
Ejemplo:
set(VCPKG_LIBRARY_LINKAGE static)
if(PORT MATCHES "qt5-")
set(VCPKG_LIBRARY_LINKAGE dynamic)
endif()
Esto compilará todos los qt5-*
puertos como bibliotecas dinámicas, pero todos los demás puertos como una biblioteca estática.
Para obtener un ejemplo en un proyecto real, vea https://github.com/Intelight/vcpkg/blob/master/triplets/x86-windows-mixed.cmake.
Comentarios de vcpkg
vcpkg es un proyecto de código abierto. Selecciona un vínculo para proporcionar comentarios: