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
, , x64
arm
, s390x
, mips64
wasm32
arm64
arm64ec
ppc64le
riscv32
riscv64
loongarch32
loongarch64
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_FLAGS
VCPKG_LINKER_FLAGS
et 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_FILE
pas .
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 TRUE
sur , ON
ou 1
que 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 :
- Déterminez le paramètre correspondant
VCPKG_VISUAL_STUDIO_PATH
à partir du triplet, ou de la variableVCPKG_VISUAL_STUDIO_PATH
d’environnement, ou considérez-le comme non défini - Déterminer le paramètre du
VCPKG_PLATFORM_TOOLSET
triplet ou le considérer comme non défini - 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)
- Filtrez la liste en fonction des paramètres pour
VCPKG_VISUAL_STUDIO_PATH
etVCPKG_PLATFORM_TOOLSET
. - 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_FILE
pas . Pour les triplets et triplets non Windows spécifiant VCPKG_CHAINLOAD_TOOLCHAIN_FILE
, cette valeur par défaut OFF
est .
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 :
- Identification de la bibliothèque dynamique
- Configuration standard de la bibliothèque dynamique pour les applications
- Alternative de chemin d’accès complet de la bibliothèque dynamique
- Incorporation de structures de code non standard dans un bundle
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.