Sdílet prostřednictvím


ŘÍ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, Versiona 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:

  1. Pokud se port řídí schématem, jako va.b.cje , odebereme úvodní v. V tomto případě se stane a.b.c.
  2. 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:

  1. Poslední potvrzení bylo provedeno 2019-04-19
  2. Řetězec aktuální verze je 2019-02-14-1
  3. 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.