CONTROL dosyaları
Uyarı
CONTROL
dosyalar kullanım dışıdır ve yalnızca vcpkg'nin önceki sürümleriyle geriye dönük uyumluluk için korunur. Yeni yazılan herhangi bir bağlantı noktası için vcpkg.json bildirim dosyalarını kullanın.
Var olan CONTROL
bir dosyayı dosyaya dönüştürmek için vcpkg.json
kullanın./vcpkg format-manifest path/to/CONTROL
.
Dosya, CONTROL
bağlantı noktasıyla ilgili meta verileri içerir. Söz dizimi Debian control
biçimini temel alır, ancak burada belgelenen alanların yalnızca alt kümesini destekleriz.
Alan adları büyük/küçük harfe duyarlıdır ve satırı boşluk bırakmadan başlatır. Paragraflar bir veya daha fazla boş satırla ayrılır.
Kaynak Paragraf
Dosyadaki CONTROL
ilk paragraf Kaynak paragraftır. Bir , Version
ve Description
alanı olmalıdırSource
. Alan kümesinin tamamı aşağıda belgelenmiştir.
Örnekler
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
Tanınan alanlar
Source
Bağlantı noktasının adı.
Yeni bağlantı noktaları eklerken adın vcpkg'nin parçası olmayan diğer projelerle çakışabileceğini unutmayın. Örneğin json
, çok fazla başka projeyle çakıyor, bu nedenle ada benzersiz hale getirmek için gibi taocpp-json
bir kapsam eklemeniz gerekir. Hem arama altyapısında hem de diğer paket koleksiyonlarında çakışma olmadığını doğrulayın.
Çakışmaları denetlemek için paket koleksiyonları:
Sürüm
Kitaplık sürümü.
Bu alan, , _
veya -
de içerebilen .
bir alfasayısal dizedir. Sürümleri sıralama girişiminde bulunulmaması; tüm sürümler bit dizeleri olarak değerlendirilir ve yalnızca eşitlik için değerlendirilir.
Etiketli yayın bağlantı noktaları için aşağıdaki kuralı izleriz:
- Bağlantı noktası gibi
va.b.c
bir şema izlerse, baştakiv
öğesini kaldırırız. Bu durumda olura.b.c
. - Bağlantı noktası gibi
curl-7_65_1
bir sürümde kendi adını içeriyorsa, baştaki adı kaldırırız:7_65_1
Sıralı yayın bağlantı noktaları için işlemeye sizin tarafınızdan erişildiği tarihi kullanırız ve olarak YYYY-MM-DD
biçimlendirilir. Başka bir şekilde de belirtildi: Birinin bir zaman makinesi varsa ve bu tarihe gitseydi, bu işlemeyi en son ana makine olarak görürdü.
Örneğin, verilen:
- En son işleme 2019-04-19 tarihinde yapılmıştır
- Geçerli sürüm dizesi şudur:
2019-02-14-1
- Bugünün tarihi 2019-06-01.
Ardından kaynak sürümü bugün güncelleştirirseniz sürümü 2019-06-01
vermelisiniz.
Bağlantı Noktası Sürümü
Bağlantı noktasının sürümü.
Bu alan negatif olmayan bir tamsayıdır. Bağlantı noktası dosyasını temel kitaplığın sürümünden ayrı olarak sürüme izin verir; Bir bağlantı noktasında değişiklik yaparsanız, kitaplığın temel sürümünü değiştirmeden bu alanı bir artırmalısınız (alanından başlayarak 0
, hiçbir Port-Version
alana eşdeğer değildir). Temel alınan kitaplığın sürümü yükseltildiğinde, bu alan yeniden 0
olarak ayarlanmalıdır (örneğin, alanı silin Port-Version
).
Örnekler
Version: 1.0.5
Port-Version: 2
Version: 2019-03-21
Açıklama
Kitaplığın açıklaması.
Kural gereği, açıklamanın ilk satırı kitaplığın özetidir. İsteğe bağlı ayrıntılı bir açıklama aşağıdadır. Ayrıntılı açıklama, boşlukla başlayan birden çok satır olabilir.
Örnekler
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.
Giriş sayfası
Kullanıcının ek belgeleri veya özgün kaynak kodunu bulabileceği kitaplığın giriş sayfasının URL'si.
Örnek:
Homepage: https://github.com/Microsoft/vcpkg
DerlemeYe Göre Değişir
Kitaplığın bağımlılığı olan vcpkg bağlantı noktalarının virgülle ayrılmış listesi.
vcpkg, yalnızca derleme bağımlılıkları ile çalışma zamanı bağımlılıkları arasında ayrım yapmaz. Kitaplığı başarıyla kullanmak için gereken bağımlılıkların tam listesi belirtilmelidir.
Örneğin: websocketpp yalnızca üst bilgi kitaplığıdır ve bu nedenle yükleme zamanında herhangi bir bağımlılık gerektirmez. Ancak aşağı akış kullanıcılarının kitaplığı kullanabilmesi için boost ve openssl gerekir. Bu nedenle websocketpp, boost ve openssl değerlerini bağımlılık olarak listeler.
Bağlantı noktası başka bir kitaplığın isteğe bağlı özelliklerine bağımlıysa bunlar söz dizimi kullanılarak portname[featurelist]
belirtilebilir. Bağlantı noktası bağımlılıktan herhangi bir özellik gerektirmiyorsa, bunun olarak portname[core]
belirtilmesi gerekir.
Bağımlılıklar, farklı gereksinimleri desteklemek için hedef üçlüye göre filtrelenebilir. Bu filtreler aşağıdaki Destekler alanıyla aynı söz dizimini kullanır ve bağlantı noktası adı ve özellik listesinin ardından parantez içindedir.
Örnek
Build-Depends: rapidjson, curl[core,openssl] (!windows), curl[core,winssl] (windows)
Varsayılan Özellikler
Varsayılan olarak yüklenecek isteğe bağlı bağlantı noktası özelliklerinin virgülle ayrılmış listesi.
Bu alan isteğe bağlıdır.
Örnek
Default-Features: dynamodb, s3, kinesis
Destekle -yen
Bağlantı noktasının üçlü için başarıyla oluşturulması beklendiğinde true olarak değerlendirilen ifade.
Şu anda bu alan yalnızca CI testinde bağlantı noktalarını atlamak için kullanılır. Gelecekte bu mekanizma, kullanıcıları belirli bir yükleme ağacının başarılı olması beklenmediği konusunda önceden uyarmaya yöneliktir. Bu nedenle, bu alan iyimser bir şekilde kullanılmalıdır; bir bağlantı noktasının %10 oranında başarılı olması beklenen durumlarda hala "destekleniyor" olarak işaretlenmelidir.
Desteklenen tanımlayıcıların listesi için bildirim belgelerindeki vcpkg.json
Platform İfadeleri'ne bakın.
Örnek
Supports: !(uwp|arm)
Özellik Paragrafları
Dosyalarda CONTROL
birden çok isteğe bağlı özellik belirtilebilir. Bir ve Description
alanı olmalıdırFeature
. İsteğe bağlı olarak bir Build-Depends
alanı olabilir. Diğer paragraflardan bir veya daha fazla boş satırla ayrılmalıdır.
Örnek
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
Tanınan alanlar
Özellik
Özelliğin adı.
Açıklama
Bağlantı noktası Description
alanıyla aynı söz dizimini kullanan özelliğin açıklaması.
DerlemeYe Göre Değişir
Bu özelliği oluşturmak ve kullanmak için gereken bağımlılıkların listesi.
Yükleme sırasında, seçilen tüm özelliklerdeki bağımlılıklar birleştirilir ve derleme için tam bağımlılık listesi oluşturulur. Bu alan, Kaynak Paragraf'takiyle aynı söz dizimini Build-Depends
izler.