Compartir a través de


Referencia de tripletas

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.

Variables

VCPKG_TARGET_ARCHITECTURE

Especifica la arquitectura de la máquina de destino.

Las opciones válidas incluyen x86, x64, arm, arm64, ppc64leriscv64loongarch32riscv32s390xarm64ec, , loongarch64, , mips64y .wasm32

VCPKG_CRT_LINKAGE

Especifica la vinculación de CRT deseada (para MSVC).

Las opciones válidas son: dynamic y static.

VCPKG_LIBRARY_LINKAGE

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.

VCPKG_BUILD_TYPE

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.

VCPKG_CMAKE_SYSTEM_NAME

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)

VCPKG_CMAKE_SYSTEM_VERSION

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

VCPKG_CHAINLOAD_TOOLCHAIN_FILE

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.

Consulte también la documentación de CMake para archivos de cadena de herramientas.

VCPKG_CXX_FLAGS

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

VCPKG_LINKER_FLAGS

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

VCPKG_MESON_CONFIGURE_OPTIONS

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.

VCPKG_MESON_NATIVE_FILE_RELEASE

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.

VCPKG_MESON_NATIVE_FILE_DEBUG

Consulte VCPKG_MESON_NATIVE_FILE_RELEASE.

VCPKG_MESON_CROSS_FILE_RELEASE

Consulte VCPKG_MESON_NATIVE_FILE_RELEASE.

VCPKG_MESON_CROSS_FILE_DEBUG

Consulte VCPKG_MESON_NATIVE_FILE_RELEASE.

VCPKG_CMAKE_CONFIGURE_OPTIONS

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.

VCPKG_CONFIGURE_MAKE_OPTIONS

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.

VCPKG_HASH_ADDITIONAL_FILES

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"
)

VCPKG_DEP_INFO_OVERRIDE_VARS

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.

VCPKG_DISABLE_COMPILER_TRACKING

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 TRUEen , ONo 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.

Variables específicas de Windows

VCPKG_ENV_PASSTHROUGH

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.

VCPKG_ENV_PASSTHROUGH_UNTRACKED

Indica a vcpkg que permita variables de entorno adicionales en el proceso de compilación sin seguimiento abi.

Vea VCPKG_ENV_PASSTHROUGH.

VCPKG_VISUAL_STUDIO_PATH

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:

  1. Determine la configuración de VCPKG_VISUAL_STUDIO_PATH desde el triplet o la variable VCPKG_VISUAL_STUDIO_PATHde entorno , o considere que no está establecida.
  2. Determinar la configuración de VCPKG_PLATFORM_TOOLSET desde el triplet o considerar que no está establecida
  3. 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)
  4. Filtre la lista en función de la configuración de VCPKG_VISUAL_STUDIO_PATH y VCPKG_PLATFORM_TOOLSET.
  5. 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")

VCPKG_PLATFORM_TOOLSET

Especifica la cadena de herramientas del compilador de C/C++ basada en VS 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.

VCPKG_PLATFORM_TOOLSET_VERSION

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. La especificación puede ser un número de versión parcial o completo. Los valores válidos son, por ejemplo, 14.25 o 14.27.29110.

VCPKG_LOAD_VCVARS_ENV

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.

Linux Variables

VCPKG_FIXUP_ELF_RPATH

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.

MacOS Variables

VCPKG_INSTALL_NAME_DIR

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.

VCPKG_OSX_DEPLOYMENT_TARGET

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 CMake buscará. Consulte la documentación de CMake para CMAKE_OSX_DEPLOYMENT_TARGET para obtener más información.

VCPKG_OSX_SYSROOT

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.

VCPKG_OSX_ARCHITECTURES

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.

Personalización por puerto

La macro PORT de CMake se establecerá al interpretar el archivo triplet y 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á todas las qt5-* bibliotecas como archivos DLL, pero todas las demás bibliotecas 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.