Variables triplets

Cet article décrit les variables vcpkg disponibles pour les fichiers triplets. Un fichier triplet peut également inclure des variables définies par l’utilisateur.

Consultez la documentation sur le concept de triplets pour obtenir une vue générale des fonctionnalités de triplet.

Variables

VCPKG_TARGET_ARCHITECTURE

Spécifie l’architecture de l’ordinateur cible.

Les options valides incluent x86, , x64arm, s390x, mips64wasm32arm64arm64ecppc64leriscv32riscv64loongarch32loongarch64

VCPKG_CRT_LINKAGE

Spécifie la liaison CRT souhaitée (pour MSVC).

Les options valides sont dynamic et static.

VCPKG_LIBRARY_LINKAGE

Spécifie la liaison de bibliothèque préférée.

Les options valides sont dynamic et static. Les bibliothèques peuvent ignorer ce paramètre s’ils ne prennent pas en charge le type de liaison préféré.

VCPKG_BUILD_TYPE

Vous pouvez définir cette valeur pour release générer des versions release uniquement des ports. Par défaut, cette valeur est vide. Lorsque cette valeur est vide, vcpkg génère des versions et débogue les configurations de ports.

VCPKG_CMAKE_SYSTEM_NAME

Spécifie la plateforme cible.

Les options valides incluent n’importe quel nom système CMake, par exemple :

  • Vide (Windows Desktop pour des raisons héritées)
  • WindowsStore(plateforme Windows universelle)
  • MinGW (Gnu minimaliste pour Windows)
  • Darwin (Mac OSX)
  • iOS (iOS)
  • Linux (Linux)
  • Emscripten (WebAssembly)

VCPKG_CMAKE_SYSTEM_VERSION

Spécifie la version du système de plateforme cible.

Ce champ est facultatif et, s’il est présent, sera passé dans la build en tant que CMAKE_SYSTEM_VERSION.

Consultez également la documentation CMake pour CMAKE_SYSTEM_VERSION

VCPKG_CHAINLOAD_TOOLCHAIN_FILE

Spécifie un autre fichier de chaîne d’outils CMake à utiliser.

Cette valeur (si définie) remplace toute autre logique de détection du compilateur. Par défaut, un fichier de chaîne d’outils est sélectionné à partir de scripts/toolchains/ la plateforme appropriée.

Remarque

Pour créer un fichier de chaîne d’outils personnalisé, il est préférable de commencer par inclure une chaîne d’outils existante à partir de et de ${VCPKG_ROOT}/scripts/toolchains l’étendre. Cela garantit que les variables essentielles définies par l’exécutable vcpkg, telles que VCPKG_TARGET_ARCHITECTURE, , VCPKG_CXX_FLAGSVCPKG_LINKER_FLAGSet d’autres variables sont transférées à CMake.

Consultez également la documentation CMake pour les fichiers de chaîne d’outils.

VCPKG_CXX_FLAGS

Définit des indicateurs de compilateur supplémentaires à utiliser lorsque vous n’utilisez VCPKG_CHAINLOAD_TOOLCHAIN_FILEpas .

Cette option comporte également des formulaires pour les indicateurs spécifiques à la configuration et les indicateurs de langage C :

  • VCPKG_CXX_FLAGS
  • VCPKG_CXX_FLAGS_DEBUG
  • VCPKG_CXX_FLAGS_RELEASE
  • VCPKG_C_FLAGS
  • VCPKG_C_FLAGS_DEBUG
  • VCPKG_C_FLAGS_RELEASE

Si vous définissez VCPKG_CXX_FLAGS, vous devez également définir VCPKG_C_FLAGS, et vice versa. Il en va de même pour les indicateurs spécifiques à la configuration. Ces variables acceptent une chaîne délimitée par l’espace des indicateurs du compilateur :

set(VCPKG_CXX_FLAGS "/wd4996 -D_CRT_SECURE_NO_WARNINGS")
set(VCPKG_C_FLAGS "/wd4996 -D_CRT_SECURE_NO_WARNINGS")

VCPKG_LINKER_FLAGS

Définit des indicateurs d’éditeur de liens supplémentaires à utiliser lors de la création de bibliothèques dynamiques et d’exécutables en l’absence de VCPKG_CHAINLOAD_TOOLCHAIN_FILE.

Cette option comporte également des formulaires pour les indicateurs spécifiques à la configuration :

  • VCPKG_LINKER_FLAGS
  • VCPKG_LINKER_FLAGS_DEBUG
  • VCPKG_LINKER_FLAGS_RELEASE

VCPKG_MESON_CONFIGURE_OPTIONS

Définissez des options de configuration Meson supplémentaires qui sont ajoutées à la commande configure (dans vcpkg_configure_meson).

Ce champ est facultatif.

Également disponible en tant que variables et VCPKG_MESON_CONFIGURE_OPTIONS_RELEASE spécifiques VCPKG_MESON_CONFIGURE_OPTIONS_DEBUG au type de build.

VCPKG_MESON_NATIVE_FILE_RELEASE

Fournissez un fichier dépendant de la configuration supplémentaire en tant que fichier croisé/natif méson. Peut être utilisé pour remplacer les paramètres fournis par vcpkg, car il sera transmis après la transmission des fichiers croisés/natifs générés par vcpkg.

Particulièrement utile pour fournir vos propres entrées build_machine et host_machine.

VCPKG_MESON_NATIVE_FILE_DEBUG

Voir VCPKG_MESON_NATIVE_FILE_RELEASE.

VCPKG_MESON_CROSS_FILE_RELEASE

Voir VCPKG_MESON_NATIVE_FILE_RELEASE.

VCPKG_MESON_CROSS_FILE_DEBUG

Voir VCPKG_MESON_NATIVE_FILE_RELEASE.

VCPKG_CMAKE_CONFIGURE_OPTIONS

Définit des options de configuration CMake supplémentaires qui sont ajoutées à la commande de configuration (dans vcpkg_cmake_configure).

Ce champ est facultatif.

Également disponible en tant que variables et VCPKG_CMAKE_CONFIGURE_OPTIONS_RELEASE spécifiques VCPKG_CMAKE_CONFIGURE_OPTIONS_DEBUG au type de build.

VCPKG_CONFIGURE_MAKE_OPTIONS

Définissez d’autres options de configuration automake/autoconf ajoutées à la commande de configuration (dans vcpkg_configure_make).

Ce champ est facultatif.

Par exemple, pour ignorer certaines vérifications libtool susceptibles d’échouer de manière incorrecte :

set(VCPKG_CONFIGURE_MAKE_OPTIONS "lt_cv_deplibs_check_method=pass_all")

Également disponible en tant que variables et VCPKG_CONFIGURE_MAKE_OPTIONS_RELEASE spécifiques VCPKG_CONFIGURE_MAKE_OPTIONS_DEBUG au type de build.

VCPKG_HASH_ADDITIONAL_FILES

Liste de fichiers à inclure dans le calcul des hachages ABI du package.

Ce champ est facultatif.

Déclarez tous les fichiers qui affectent le contenu d’un package et doivent être pris en compte dans le calcul du hachage ABI. Par exemple :

  • Fichiers inclus (via include(filepath)) dans des triplets et des chaînes d’outils personnalisés.
  • Fichiers définis dans VCPKG_MESON_(NATIVE|CROSS)_FILE_<CONFIG>

Seuls le contenu et l’ordre des fichiers sont pris en compte, les chemins d’accès des fichiers n’affectent pas le hachage ABI.

set(VCPKG_HASH_ADDITIONAL_FILES
  "${CMAKE_CURRENT_LIST_DIR}/file1.cmake"
  "${CMAKE_CURRENT_LIST_DIR}/meson-cross.txt"
)

VCPKG_POST_PORTFILE_INCLUDES

Liste des fichiers CMake à inclure après l’exécution de portfile.cmake.

Ce champ est facultatif.

Le contenu et l’ordre des fichiers sont utilisés pour le hachage ABI, les chemins d’accès des fichiers n’affectent pas le hachage ABI.

set(VCPKG_POST_PORTFILE_INCLUDES
  "${CMAKE_CURRENT_LIST_DIR}/file1.cmake"
  "${CMAKE_CURRENT_LIST_DIR}/file2.cmake"
)

VCPKG_DEP_INFO_OVERRIDE_VARS

Remarque

Cette section décrit une fonctionnalité expérimentale de vcpkg qui peut changer ou être supprimée à tout moment.

Remplace la liste calculée par défaut des termes « Supports » triplets.

Cette option (si définie) remplace l’ensemble par défaut des termes utilisés pour l’évaluation d’expression de plateforme.

Pour plus d’informations, consultez la documentation du "supports" champ fichier manifeste.

Remarque

Cette liste est extraite via la fonction d’assistance vcpkg_get_dep_info .

VCPKG_DISABLE_COMPILER_TRACKING

Avertissement

L’activation de cette option n’est pas recommandée, car elle peut entraîner une incompatibilité ABI dans les packages binaires restaurés. Pour en savoir plus, consultez la documentation de mise en cache binaire

Lorsque cette option est définie TRUEsur , ONou 1que le compilateur ne sera pas suivi dans le cadre de l’abis du package.

Cela entraîne la réutilisation des builds à partir de compilateurs plus anciens ou plus récents.

Variables spécifiques à Windows

VCPKG_ENV_PASSTHROUGH

Indique à vcpkg d’autoriser des variables d’environnement supplémentaires dans le processus de génération.

Sur Windows, vcpkg génère des packages dans un environnement propre spécial isolé de l’invite de commandes actuelle pour garantir la fiabilité et la cohérence des builds. Cette option triplet peut être définie sur une liste de variables d’environnement supplémentaires qui seront ajoutées à l’environnement propre. Les valeurs de ces variables d’environnement sont hachées dans l’abi du package . Pour passer des variables d’environnement sans suivi abi, consultez VCPKG_ENV_PASSTHROUGH_UNTRACKED.

Consultez également la vcpkg env commande pour savoir comment inspecter l’environnement précis qui sera utilisé.

Remarque

Cette liste est extraite via la fonction d’assistance vcpkg_get_tags .

VCPKG_ENV_PASSTHROUGH_UNTRACKED

Indique à vcpkg d’autoriser des variables d’environnement supplémentaires dans le processus de génération sans suivi abi.

Consultez l’article VCPKG_ENV_PASSTHROUGH.

VCPKG_VISUAL_STUDIO_PATH

Spécifie l’installation de Visual Studio à utiliser.

Pour sélectionner la combinaison précise de l’instance de Visual Studio et de la version de l’ensemble d’outils, nous passons en revue l’algorithme suivant :

  1. Déterminez le paramètre correspondant VCPKG_VISUAL_STUDIO_PATH à partir du triplet, ou de la variable VCPKG_VISUAL_STUDIO_PATHd’environnement, ou considérez-le comme non défini
  2. Déterminer le paramètre du VCPKG_PLATFORM_TOOLSET triplet ou le considérer comme non défini
  3. Rassemblez une liste de toutes les paires d’instances Visual Studio avec tous les ensembles d’outils disponibles dans ces instances
    • Ceci est ordonné en premier par type d’instance (Stable, Prerelease, Legacy), puis par version de l’ensemble d’outils (v143, v142, v141, v140)
  4. Filtrez la liste en fonction des paramètres pour VCPKG_VISUAL_STUDIO_PATH et VCPKG_PLATFORM_TOOLSET.
  5. Sélectionner la meilleure option restante

Le chemin d’accès doit être absolu, mis en forme avec des barres obliques inverses et n’avoir aucune barre oblique de fin :

set(VCPKG_VISUAL_STUDIO_PATH "C:\\Program Files (x86)\\Microsoft Visual Studio\\Preview\\Community")

VCPKG_PLATFORM_TOOLSET

Spécifie la chaîne d’outils du compilateur C/C++ basée sur Visual Studio à utiliser.

Consultez VCPKG_VISUAL_STUDIO_PATH l’algorithme de sélection complet.

Paramètres valides :

  • L’ensemble d’outils de plateforme Visual Studio 2022 est v143.
  • L’ensemble d’outils de plateforme Visual Studio 2019 est v142.
  • L’ensemble d’outils de plateforme Visual Studio 2017 est v141.
  • L’ensemble d’outils de plateforme Visual Studio 2015 est v140.

VCPKG_PLATFORM_TOOLSET_VERSION

Spécifie la chaîne d’outils du compilateur MSVC C/C++ détaillée à utiliser.

Par défaut, VCPKG_PLATFORM_TOOLSET choisit toujours la dernière version mineure installée de l’ensemble d’outils sélectionné. Si vous avez besoin de plus de granularité, vous pouvez utiliser cette variable. Vous pouvez spécifier un numéro de version partiel ou complet. Les valeurs valides sont, par exemple, 14.25 ou 14.27.29110.

VCPKG_LOAD_VCVARS_ENV

Détermine si vcpkg recherche et utilise une instance de Visual Studio dans le cadre de l’environnement triplet.

Par défaut, il s’agit ON des triplets Windows qui ne spécifient VCPKG_CHAINLOAD_TOOLCHAIN_FILEpas . Pour les triplets et triplets non Windows spécifiant VCPKG_CHAINLOAD_TOOLCHAIN_FILE, cette valeur par défaut OFFest .

Linux Variables

VCPKG_FIXUP_ELF_RPATH

Lorsque cette option est définie sur (true|1|on), vcpkg ajoute $ORIGIN et $ORIGIN/<path_relative_to_lib> à l’en-tête RUNPATH des exécutables et des bibliothèques partagées. Cela permet aux packages d’être déplacés sur Linux.

MacOS Variables

VCPKG_INSTALL_NAME_DIR

Définit le nom d’installation utilisé lors de la création de bibliothèques dynamiques macOS. La valeur par défaut est @rpath. Pour plus d’informations, consultez la documentation CMake pour CMAKE_INSTALL_NAME_DIR .

VCPKG_FIXUP_MACHO_RPATH

Garantit que les fichiers binaires Mach-O créés par vcpkg peuvent être déplacés à l’aide des noms d’installation relatifs et des chemins d’exécution.

Quand la valeur est définie sur ON:

  • Modifie le champ absolu LC_LC_ID_DYLIB pour @rpath/<library> les fichiers binaires de bibliothèque partagée ;
  • Modifie les champs absolus LC_RPATH par rapport @loader_path/<relative/path/to/library> aux fichiers binaires exécutables et de bibliothèques partagées.

Important

Cette fonctionnalité est activée par défaut quand VCPKG_TARGET_IS_OSX est TRUE. Pour désactiver, définissez VCPKG_FIXUP_MACHO_RPATH OFF explicitement la valeur dans un fichier triplet.

Pour plus d’informations sur les bibliothèques dynamiques sur macOS, consultez les liens suivants :

VCPKG_OSX_DEPLOYMENT_TARGET

Définit la version minimale de macOS pour les fichiers binaires compilés. Cela modifie également les versions du Kit de développement logiciel (SDK) de plateforme macOS que CMake recherche. Pour plus d’informations, consultez la documentation CMake pour CMAKE_OSX_DEPLOYMENT_TARGET .

VCPKG_OSX_SYSROOT

Définissez le nom ou le chemin du Kit de développement logiciel (SDK) de la plateforme macOS qui sera utilisé par CMake. Pour plus d’informations, consultez la documentation CMake pour CMAKE_OSX_SYSROOT .

VCPKG_OSX_ARCHITECTURES

Définissez l’architecture cible macOS/iOS qui sera utilisée par CMake. Pour plus d’informations, consultez la documentation CMake pour CMAKE_OSX_ARCHITECTURES .

Personnalisation par port

La variable PORT CMake est définie lors de l’interprétation du fichier triplet. Il peut être utilisé pour modifier les paramètres (par exemple VCPKG_LIBRARY_LINKAGE) sur une base par port.

Exemple :

set(VCPKG_LIBRARY_LINKAGE static)
if(PORT MATCHES "qt5-")
    set(VCPKG_LIBRARY_LINKAGE dynamic)
endif()

Cela génère tous les qt5-* ports en tant que bibliothèques dynamiques, mais tous les autres ports en tant que bibliothèque statique.

Pour obtenir un exemple dans un projet réel, consultez https://github.com/Intelight/vcpkg/blob/master/triplets/x86-windows-mixed.cmake.