ŘÍDICÍ soubory
Upozorňující
CONTROL
soubory jsou zastaralé a uchovávají se pouze kvůli zpětné kompatibilitě se staršími verzemi vcpkg. Pro každý nově vytvořený port použijte soubory manifestu vcpkg.json.
Slouží ./vcpkg format-manifest path/to/CONTROL
k převodu existujícího CONTROL
souboru na vcpkg.json
soubor.
Soubor CONTROL
obsahuje metadata o portu. Syntaxe je založená na formátu Debianucontrol
, i když podporujeme pouze podmnožinu polí zdokumentovaných zde.
V názvech polí se rozlišují malá a velká písmena a zahajují čáru bez počátečního prázdného znaku. Odstavce jsou oddělené jedním nebo více prázdnými řádky.
Zdrojový odstavec
Prvním odstavcem CONTROL
v souboru je zdrojový odstavec. Musí mít pole Source
, Version
a Description
pole. Úplná sada polí je zdokumentovaná níže.
Příklady
Source: ace
Version: 6.5.5
Description: The ADAPTIVE Communication Environment
Source: vtk
Version: 8.2.0
Port-Version: 2
Description: Software system for 3D computer graphics, image processing, and visualization
Build-Depends: zlib, libpng, tiff, libxml2, jsoncpp, glew, freetype, expat, hdf5, libjpeg-turbo, proj4, lz4, libtheora, atlmfc (windows), eigen3, double-conversion, pugixml, libharu, sqlite3, netcdf-c
Rozpoznaná pole
Source
Název portu.
Při přidávání nových portů mějte na paměti, že název může být v konfliktu s jinými projekty, které nejsou součástí vcpkg. Například json
je v konfliktu s příliš mnoha dalšími projekty, takže byste k názvu měli přidat obor, například taocpp-json
aby byl jedinečný. Ověřte, že vyhledávací web neobsahuje žádné konflikty ani jiné kolekce balíčků.
Kolekce balíčků pro kontrolu konfliktů:
Verze
Verze knihovny.
Toto pole je alfanumerický řetězec, který může obsahovat .
také , _
nebo -
. Není proveden žádný pokus o řazení verzí; všechny verze jsou považovány za bitové řetězce a jsou vyhodnoceny pouze pro rovnost.
Pro porty označené verze dodržujeme následující konvenci:
- Pokud se port řídí schématem, jako
va.b.c
je , odebereme úvodnív
. V tomto případě se stanea.b.c
. - Pokud port obsahuje vlastní název ve verzi, například
curl-7_65_1
, odebereme úvodní název:7_65_1
Pro porty s uvedením verze používáme datum, kdy k potvrzení přistupoval vámi naformátovaný jako YYYY-MM-DD
. Jiný způsob: Pokud někdo měl časový stroj a šel k tomuto datu, viděl by toto potvrzení jako nejnovější hlavní server.
Například:
- Poslední potvrzení bylo provedeno 2019-04-19
- Řetězec aktuální verze je
2019-02-14-1
- Dnešní datum je 2019-06-01.
Pokud zdrojová verze aktualizujete ještě dnes, měli byste jí dát verzi 2019-06-01
.
Verze portu
Verze portu.
Toto pole je nezáporné celé číslo. Umožňuje jednu verzi souboru portu odděleně od verze podkladové knihovny; Pokud provedete změnu portu, aniž byste změnili podkladovou verzi knihovny, měli byste toto pole zvýšit o jedno (počínaje 0
, což odpovídá žádnému Port-Version
poli). Když se upgraduje verze podkladové knihovny, mělo by se toto pole nastavit zpět ( 0
tj. odstranit Port-Version
pole).
Příklady
Version: 1.0.5
Port-Version: 2
Version: 2019-03-21
Popis
Popis knihovny.
Podle konvence je první řádek popisu souhrnem knihovny. Následuje volitelný podrobný popis. Podrobný popis může být více řádků, počínaje prázdným znakem.
Příklady
Description: C++ header-only JSON library
Description: Mosquitto is an open source message broker that implements the MQ Telemetry Transport protocol versions 3.1 and 3.1.1.
MQTT provides a lightweight method of carrying out messaging using a publish/subscribe model. This makes it suitable for "machine
to machine" messaging such as with low power sensors or mobile devices such as phones, embedded computers or microcontrollers like the Arduino.
Domovská stránka
Adresa URL domovské stránky knihovny, kde uživatel může najít další dokumentaci nebo původní zdrojový kód.
Příklad:
Homepage: https://github.com/Microsoft/vcpkg
Závisí na sestavení
Čárkami oddělený seznam portů vcpkg, na které knihovna závisí.
Vcpkg nerozlišuje mezi závislostmi pouze sestavení a závislostmi modulu runtime. Je třeba zadat úplný seznam závislostí potřebných k úspěšnému použití knihovny.
Například: websocketpp je knihovna pouze hlavička, a proto nevyžaduje žádné závislosti v době instalace. Podřízení uživatelé ale potřebují zvýšit a otevřít, aby mohli knihovnu využívat. Proto websocketpp seznamy boost a openssl jako závislosti.
Pokud je port závislý na volitelných funkcích jiné knihovny, můžete je zadat pomocí portname[featurelist]
syntaxe. Pokud port nevyžaduje žádné funkce ze závislosti, měl by být zadán jako portname[core]
.
Závislosti je možné filtrovat na základě cílového trojití, aby podporovaly různé požadavky. Tyto filtry používají stejnou syntaxi jako pole Supports níže a jsou obklopené závorky za názvem portu a seznamem funkcí.
Příklad
Build-Depends: rapidjson, curl[core,openssl] (!windows), curl[core,winssl] (windows)
Výchozí funkce
Čárkami oddělený seznam volitelných funkcí portů, které se mají nainstalovat ve výchozím nastavení.
Toto pole je nepovinné.
Příklad
Default-Features: dynamodb, s3, kinesis
Podporuje
Výraz, který se vyhodnotí jako true, pokud se očekává úspěšné sestavení portu pro triplet.
V současné době se toto pole používá pouze v testování CI a přeskočí porty. V budoucnu má tento mechanismus upozornit uživatele předem, že daný strom instalace nebude úspěšný. Proto by toto pole mělo být použito optimisticky; v případech, kdy se očekává, že port bude úspěšný 10 % času, měl by být stále označený jako "podporovaný".
Seznam podporovaných identifikátorů najdete v vcpkg.json
dokumentaci k manifestu v části Výrazy platformy.
Příklad
Supports: !(uwp|arm)
Odstavce funkcí
V souborech lze zadat několik volitelných CONTROL
funkcí. Musí mít pole Feature
a Description
pole. Volitelně může mít Build-Depends
pole. Musí být oddělená od ostatních odstavců jedním nebo více prázdnými řádky.
Příklad
Source: vtk
Version: 8.2.0-2
Description: Software system for 3D computer graphics, image processing, and visualization
Build-Depends: zlib, libpng, tiff, libxml2, jsoncpp, glew, freetype, expat, hdf5, libjpeg-turbo, proj4, lz4, libtheora, atlmfc (windows), eigen3, double-conversion, pugixml, libharu, sqlite3, netcdf-c
Feature: openvr
Description: OpenVR functionality for VTK
Build-Depends: sdl2, openvr
Feature: qt
Description: Qt functionality for VTK
Build-Depends: qt5
Feature: mpi
Description: MPI functionality for VTK
Build-Depends: mpi, hdf5[parallel]
Feature: python
Description: Python functionality for VTK
Build-Depends: python3
Rozpoznaná pole
Funkce
Název funkce.
Popis
Popis funkce používající stejnou syntaxi jako pole portu Description
.
Závisí na sestavení
Seznam závislostí potřebných k sestavení a použití této funkce
Při instalaci se závislosti ze všech vybraných funkcí zkombinují, aby se vytvořil úplný seznam závislostí pro sestavení. Toto pole se řídí stejnou syntaxí jako Build-Depends
ve zdrojovém odstavci.