Triplés
Triplet est un terme standard utilisé dans la compilation croisée comme moyen de capturer complètement l’environnement cible (PROCESSEUR, système d’exploitation, compilateur, runtime, etc.) dans un nom unique et pratique.
Dans vcpkg, les triplets décrivent un « jeu de configuration cible » imaginaire pour chaque bibliothèque. Dans un triplet, les bibliothèques sont généralement générées avec la même configuration, mais ce n’est pas une exigence. Par exemple, vous pouvez avoir un triplet qui génère openssl
statiquement et zlib
dynamiquement, un qui les génère à la fois statiquement et un qui les génère dynamiquement (tous pour le même système d’exploitation cible et la même architecture).
Une seule build consomme des fichiers de jusqu’à deux triplets : le triplet cible et le triplet hôte. Si vous devez appliquer différents paramètres pour différentes bibliothèques, vous devez effectuer un triplet personnalisé unique avec cette combinaison de paramètres. Consultez la personnalisation par port pour savoir comment procéder.
vcpkg est fourni avec des triplets prédéfinis pour de nombreuses plateformes et configurations courantes. Exécutez vcpkg help triplet
pour obtenir la liste des triplets disponibles dans votre environnement.
Sélection triplet
Pour sélectionner un triplet cible :
- En mode classique :
- Qualifier les références de package avec le nom triplet, par
zlib:x64-windows-static-md
exemple . - Passer
--triplet=<triplet>
.
- Qualifier les références de package avec le nom triplet, par
- Dans CMake :
- Définissez
VCPKG_TARGET_TRIPLET
.
- Définissez
- Dans MSBuild :
- Définissez
VcpkgTriplet
.
- Définissez
Pour sélectionner le triplet de l’hôte pour l’ordinateur actuel :
- En mode classique :
- Passer
--host-triplet=<triplet>
.
- Passer
- Dans CMake :
- Définissez
VCPKG_HOST_TRIPLET
.
- Définissez
- Dans MSBuild :
- Définissez
VcpkgHostTriplet
.
- Définissez
Triplets communautaires
Les triplets contenus dans le triplets\community
dossier ne sont pas testés par l’intégration continue du Registre organisé, mais sont couramment demandés par la communauté. Étant donné que nous n’avons pas de couverture continue, les mises à jour de port peuvent interrompre la compatibilité avec les triplets de la communauté. Nous sommes heureux d’accepter et de passer en revue les contributions qui visent à résoudre les problèmes liés à ces triplets.
Lors de l’utilisation d’un triplet de la communauté, un message semblable à ce qui suit est imprimé lors de l’installation d’un package :
-- Using community triplet x86-uwp. This triplet configuration is not guaranteed to succeed.
-- [COMMUNITY] Loading triplet configuration from: D:\src\vcpkg\triplets\community\x86-uwp.cmake
Ajouter ou remplacer des triplets
Vous pouvez étendre vcpkg en remplaçant les triplets in-the-box ou en créant de nouveaux triplets pour votre projet particulier.
Tout d’abord, copiez un fichier triplet intégré à partir du triplets\
répertoire dans un autre emplacement de système de fichiers. Ensuite, ajoutez ce répertoire à la liste des chemins triplets de superposition lors de l’interaction avec vcpkg.
- En mode manifeste, vous pouvez utiliser
$.vcpkg-configuration.overlay-triplets
. - Lorsque vous utilisez vcpkg à partir de CMake, vous pouvez définir
VCPKG_OVERLAY_TRIPLETS
. - Lorsque vous utilisez vcpkg à partir de MSBuild, vous pouvez ajouter
--overlay-triplets=...
des options supplémentaires à MSBuild. - Lorsque vous utilisez directement l’interface CLI, vous pouvez passer
--overlay-triplets=...
. - Vous pouvez définir la
$VCPKG_OVERLAY_TRIPLETS
variable d’environnement sur une liste de chemins de superposition.
Consultez notre exemple de triplets de superposition pour obtenir une procédure pas à pas plus détaillée.
Remarque
Les noms triplets ne peuvent contenir que des caractères alphanumériques minuscules et des traits d’union.
Notes
Le triplet par défaut lors de l’exécution d’une commande vcpkg ou %VCPKG_DEFAULT_TRIPLET%
d’un choix spécifique à la plateforme si cette variable d’environnement n’est pas définie.
- Windows :
x64-windows
- Linux :
x64-linux
- OSX :
x64-osx
Nous vous recommandons d’utiliser un schéma d’affectation de noms systématique lors de la création de triplets. Le schéma de nommage de chaîne d’outils Android est une bonne source d’inspiration : https://developer.android.com/ndk/guides/standalone_toolchain.html.