Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek popisuje konvence rozložení používané nástrojem vcpkg pro instalační adresář. Instalační adresář obsahuje soubory nainstalované jednotlivými balíčky. Autoři portů by měli zajistit, aby jejich balíčky dodržovaly konvence popsané v tomto článku.
V klasickém režimu se instalační adresář nachází v $VCPKG_ROOT/installed umístění (kde $VCPKG_ROOT je instalační cesta vcpkg). V režimu manifestu má každý soubor manifestu odpovídající vcpkg_installed adresář. Umístění instalačního adresáře lze změnit pomocí --x-install-root této možnosti.
Bez ohledu na provozní režim zůstává rozložení instalačního adresáře stejné.
Instalační adresář se vytvoří při prvním instalaci balíčku, pokud nevidíte instalační adresář, zkuste nejdřív nainstalovat některé balíčky.
Kořenová úroveň instalačního adresáře obsahuje:
- Adresář
vcpkg, který sleduje nainstalované balíčky a soubory - Adresář pro každý triplet. Každý trojitý adresář obsahuje soubory nainstalované jednotlivými balíčky.
Trojité adresáře
Výstup každé instalace balíčku je obsažen v adresáři specifickém pro triplet.
Například balíčky nainstalované pro x64-windows triplet jsou umístěny v installed/x64-windows adresáři.
Rozložení podadresářů uvnitř každého trojitého adresáře je stejné:
Poznámka:
Některé balíčky můžou vytvářet soubory, které neodpovídají zde popsaným konvencím. Autoři portů by měli určit konečné umístění vytvořených souborů na základě účelu, který každý soubor obsluhuje.
| Podadresář | Typ souboru |
|---|---|
bin |
Vydání .dll a .pdb soubory |
debug/bin |
Ladění .dll a .pdb soubory |
debug/lib |
Ladění .lib, .so, .dyliba .a soubory |
debug/lib/manual-link |
Ručně propojitelné ladění .lib, .so, .dylib, a .a soubory |
debug/plugins/<group> |
Ladění sdílených knihoven za běhu |
debug/lib/pkgconfig |
Ladění souborů pkg-config (.pc) |
include |
Soubory hlaviček (.h, .hpp, .hxx) |
lib |
Verze .lib, .so.dylib a .a soubory |
lib/manual-link |
Ručně propojitelné verze .lib, .so, .dylib, a .a soubory |
lib/pkgconfig |
Vydání souborů pkg-config (.pc) |
plugins/<group> |
Sdílené knihovny vydané za běhu |
share/<port> |
Další soubory nezávislé na konfiguraci |
share/<port>/copyright |
Text licence balíčku |
share/<port>/usage |
Soubor s pokyny k integraci sestavení systému |
share/<port>/usage-accurate |
Vygenerovaná značka přesnosti využití |
share/<port>/vcpkg.spdx.json |
Vygenerovaná faktura za software |
share/<port>/vcpkg-port-config.cmake |
Funkce A proměnné CMake definované portem |
share/<lowercase-package>/<package>Config.cmake |
Integrační soubory CMake pro find_package(package) |
share/<cmakepackagename>/vcpkg-cmake-wrapper.cmake |
Přepsání CMake find_package(<cmakepackagename>) |
share/pkgconfig |
Konfigurační soubory nezávislé na konfiguraci pkg-config (.pc) |
tools/<port> |
Spustitelné nástroje a podpůrné soubory |
bin adresářů a debug/bin adresářů
Tyto adresáře ve Windows obsahují soubory DLL a PDB pro konfiguraci vydané verze a ladění. Všechny spustitelné soubory vytvořené portem by se měly přesunout do tools/<port> adresáře.
include
Obsahuje soubory hlaviček (.h, .hpp, .hxx). Rozložení v tomto adresáři by mělo odrážet zamýšlené použití souborů hlaviček balíčku. Například contoso knihovna, která má v úmyslu použít #include <contoso/contoso.h> , by měla obsahovat soubor include/contoso/contoso.hhlavičky .
vcpkg zakáže instalaci některých rezervovaných názvů souborů hlaviček v kořenovém adresáři include , například: err.h, user.h, time.ha další.
Knihovny, které poskytují název zakázaného souboru hlaviček, by měly umístit soubory hlaviček do include/<port> adresáře. Pokud knihovna hodlá nahradit systémový hlavičkový soubor, měl by nastavit zásadu VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS v jeho portfile.cmake.
lib adresářů a debug/lib adresářů
Obsahuje statické knihovny, import knihoven (ve Windows) a sdílené knihovny (v jiných systémech než Windows).
lib/manual-link adresářů a debug/lib/manual-link adresářů
Obsahuje knihovny, které musí být ručně propojeny.
Soubory, které můžou způsobovat problémy při automatickém propojení, musí být umístěny do lib/manual-link složek místo lib adresáře. Pokud je například knihovna určená k definování main() funkce pro program.
lib/pkgconfiga debug/lib/pkgconfigshare/pkgconfig adresáře
Obsahuje integrační soubory pkg-config (.pc). Knihovna by neměla současně poskytovat soubory závislé na konfiguraci a nezávislé na konfiguraci.
Například: nenainstalujte lib/pkgconfig/contoso.pc a share/pkgconfig/contoso.pc.
plugins/<group> a debug/plugins/<group>
Obsahuje sdílené knihovny, které mají být načteny během běhu pomocí aplikací.
share/<port>
Obsahuje různé soubory nainstalované jednotlivými porty. Například soubory SPDX, skripty atd.
share/<port>/copyright
Vcpkg očekává, že porty poskytnou copyright soubor, který obsahuje informace o licenci nainstalovaného balíčku. Další informace najdete v průvodci údržbou.
share/<port>/usage
Textový soubor s pokyny pro integraci knihovny do projektu. Další informace najdete v průvodci poskytnutím dokumentace k používání balíčků .
share/<port>/usage-accurate
Prázdný soubor značky, který potvrzuje, že vygenerované informace o využití vcpkg jsou přesné. Při instalaci tohoto souboru vcpkg vynechá heuristické upozornění z vygenerovaných informací o použití. Další informace najdete v průvodci dokumentací k používání .
share/<port>/vcpkg.spdx.json
Softwarové vyúčtování materiálů vygenerovaných nástrojem vcpkg pro nainstalovaný balíček.
share/<lowercase-package>/<package>Config.cmake, share/<package>/<package>-config.cmake
Integrační soubory CMake by se měly umístit do share složky a dodržovat pravidla CMake pro
find_package(package) v CONFIG režimu.
Pokud například port očekává, že ho poskytne find_package(MyPackage REQUIRED), musí zadat buď share/mypackage/MyPackageConfig.cmake nebo share/mypackage/MyPackage-config.cmake.
Pokud balíček poskytuje integrační soubory CMake, zobrazí se
vcpkg_cmake_config_fixup() Pomocná funkce by se měla vyvolat, aby opravili všechny nepřiřazené cesty a sloučili konfigurace sestavení.
tools/<port>
Důležité
Vcpkg je především správce závislostí knihovny C++. Autoři portů by měli být při rozhodování o zahrnutí nástrojů do výstupu instalace úmyslní. Příklad: Zvažte instalaci pouze spustitelného souboru vydané verze, pokud není potřeba nástroj pro ladění.
Pokud jsou spustitelné soubory určené k použití za běhu, měly by být k dispozici verze i ladicí spustitelné soubory.
Obsahuje spustitelné nástroje vytvořené portem. Důrazně se doporučuje, ale nevyžaduje se, aby každý nainstalovaný spustitelný soubor chodil do podadresáře odpovídající názvu portu, který ho vytvořil. Například contoso port může nainstalovat ContosoGenerator.exe do tools/contoso/ContosoGenerator.exe.
Některé porty vyžadují, aby jejich spustitelné soubory přešly do bin podadresáře, v takovém případě je tools/<port>/bindoporučeným vzorem .