Partager via


Conventions de disposition du répertoire d’installation

Cet article décrit les conventions de disposition utilisées par vcpkg pour le répertoire d’installation. Le répertoire d’installation contient les fichiers installés par chaque package. Les auteurs de ports doivent s’assurer que leurs packages suivent les conventions décrites dans cet article.

En mode classique, le répertoire d’installation se trouve dans $VCPKG_ROOT/installed (où $VCPKG_ROOT se trouve votre chemin d’installation vcpkg). En mode manifeste, chaque fichier manifeste a un répertoire correspondant vcpkg_installed . L’emplacement du répertoire d’installation peut être modifié avec l’option --x-install-root . Quel que soit le mode d’opération, la disposition du répertoire d’installation reste la même.

Le répertoire d’installation est créé la première fois qu’un package est installé, si vous ne voyez pas d’annuaire d’installation essayer d’installer d’abord certains packages.

Le niveau racine du répertoire d’installation contient :

  • Répertoire vcpkg qui effectue le suivi des packages et fichiers installés
  • Répertoire pour chaque triplet. Chaque répertoire triplet contient des fichiers installés par chaque package.

Répertoires triplet

La sortie de chaque installation de package est contenue dans un répertoire spécifique à triplet. Par exemple, les packages installés pour le x64-windows triplet se trouvent dans le installed/x64-windows répertoire.

La disposition des sous-répertoires à l’intérieur de chaque répertoire triplet est la même :

Remarque

Certains packages peuvent produire des fichiers qui ne correspondent pas aux conventions décrites ici. Les auteurs de ports doivent déterminer l’emplacement final des fichiers produits en fonction de l’objectif que chaque fichier sert.

Sous-répertoire Type de fichier
bin Mise en production .dll et .pdb fichiers
debug/bin Déboguer et .pdb fichiers .dll
debug/lib Déboguer .lib, .so, .dylib, et .a fichiers
debug/lib/manual-link Déboguer .libmanuellement, , .so.dylibet .a fichiers pouvant être liés manuellement
debug/plugins/<group> Fichiers de débogage .dll de chargement du runtime
debug/lib/pkgconfig Déboguer des fichiers pkgconfig (.pc)
include Header-files (.h, .hpp, .hxx)
lib Mise en production .lib, .so.dylib et .a fichiers
lib/manual-link Version .libpouvant être liée manuellement, , .so.dylibet .a fichiers
lib/pkgconfig Fichiers Pkgconfig (.pc)
plugins/<group> Fichiers de mise en production .dll de chargement du runtime
share/<port> Fichiers indépendants de la configuration supplémentaires
share/<port>/copyright Texte de licence du package
share/<port>/usage Fichier d’instructions d’intégration buildsystem
share/<port>/vcpkg-port-config.cmake Fonctions et variables CMake définies par port
share/<lowercase-package>/<package>Config.cmake Fichiers d’intégration CMake pour find_package(package)
share/<cmakepackagename>/vcpkg-cmake-wrapper.cmake Remplacement CMake find_package(<cmakepackagename>)
share/pkgconfig Fichiers pkgconfig indépendants de la configuration (.pc)
tools/<port> Outils exécutables

bin et debug/bin répertoires

Sur Windows, ces répertoires contiennent des fichiers DLL et PDB pour la configuration de mise en production et de débogage respectivement. Tout fichier exécutable produit par un port doit être déplacé vers un tools/<port> répertoire.

include

Contient des fichiers d’en-tête (.h, .hpp, .hxx). La disposition sous ce répertoire doit refléter l’utilisation prévue des fichiers d’en-tête du package. Par exemple, une contoso bibliothèque qui a l’intention d’utiliser #include <contoso/contoso.h> doit fournir le fichier d’en-tête include/contoso/contoso.h.

vcpkg interdit l’installation de certains noms de fichiers d’en-tête réservés à la racine du include répertoire, par exemple : err.h, , user.htime.h, et d’autres. Les bibliothèques qui fournissent un nom de fichier d’en-tête interdit doivent placer leurs fichiers d’en-tête dans un include/<port> répertoire. Si la bibliothèque a l’intention de remplacer un fichier d’en-tête système, elle doit définir la VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS stratégie dans son portfile.cmakefichier .

lib et debug/lib répertoires

Contient des bibliothèques statiques, des bibliothèques d’importation (sur Windows) et des bibliothèques partagées (sur non-Windows).

Contient des bibliothèques qui doivent être liées manuellement.

Les fichiers susceptibles de provoquer des problèmes lorsque les liens doivent être placés automatiquement dans les lib/manual-link dossiers au lieu du lib répertoire. Par exemple, si une bibliothèque est destinée à définir la main() fonction d’un programme.

lib/pkgconfiget debug/lib/pkgconfig share/pkgconfig répertoires

Contient des fichiers d’intégration pkgconfig (.pc). Une bibliothèque ne doit pas fournir de fichiers dépendants de la configuration et indépendants de la configuration en même temps. Par exemple : ne pas installer lib/pkgconfig/contoso.pc et share/pkgconfig/contoso.pc.

plugins/<group> et debug/plugins/<group>

Contient des bibliothèques partagées destinées à être chargées pendant l’exécution en consommant des applications.

share/<port>

Contient des fichiers divers installés par chaque port. Par exemple, les fichiers SPDX, les scripts, etc.

vcpkg s’attend à ce que les ports fournissent un copyright fichier qui contient les informations de licence du package installé. Pour plus d’informations, consultez le guide de maintenance.

share/<port>/usage

Fichier texte avec des instructions pour intégrer une bibliothèque dans un projet. Pour plus d’informations, consultez le guide pour fournir de la documentation sur l’utilisation des packages .

share/<lowercase-package>/<package>Config.cmake, share/<package>/<package>-config.cmake

Les fichiers d’intégration CMake doivent être placés dans le share dossier et respecter les règles de CMake pour find_package(package) en CONFIG mode.

Par exemple, si un port s’attend à fournir find_package(MyPackage REQUIRED), il doit fournir l’une ou l’autre share/mypackage/MyPackageConfig.cmake ou share/mypackage/MyPackage-config.cmake.

Si un package fournit des fichiers d’intégration CMake, le vcpkg_cmake_config_fixup() La fonction d’assistance doit être appelée pour corriger les chemins non délocalisables et fusionner les configurations de build.

tools/<port>

Important

vcpkg est d’abord un gestionnaire de dépendances de bibliothèque C++. Les auteurs de ports doivent être délibérés lors de la décision d’inclure des outils dans la sortie d’installation. Par exemple : envisagez d’installer uniquement un exécutable de mise en production lorsque l’outil de débogage n’est pas nécessaire.

Les exécutables de mise en production et de débogage doivent être fournis lorsque les exécutables sont destinés à une utilisation du runtime.

Contient des outils exécutables générés par un port. Il est vivement recommandé, mais pas obligatoire, que chaque exécutable installé passe dans un sous-répertoire correspondant au nom du port qui l’a produit. Par exemple, un contoso port peut installer un ContosoGenerator.exe port sur tools/contoso/ContosoGenerator.exe.

Certains ports nécessitent que leurs exécutables entrent dans un bin sous-répertoire, auquel cas le modèle recommandé est tools/<port>/bin.