Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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
vcpkgqui 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).
lib/manual-link et debug/lib/manual-link répertoires
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.
share/<port>/copyright
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.