Bildirim modu nedir?
vcpkg iki işlem moduna sahiptir: klasik mod ve bildirim modu. Çoğu kullanıcı için bildirim modunu öneririz.
Bildirim modu, projeniz veya paketiniz hakkındaki meta verileri açıklamak için bildirim temelli JSON dosyalarını kullanır. Bildirim dosyalarının ada sahip olması vcpkg.json
gerekir.
Bildirim modu, çalışma dizininde vcpkg install
bir bildirim dosyası (vcpkg.json
) varken komutu çalıştırılarak devreye girer. Bildirim modunda paketleri yükleme hakkında ayrıntılı bilgi için okumaya devam edin.
Bildirim modu, sürüm oluşturma ve özel kayıt defterleri gibi gelişmiş özellikleri kullanmak için de gereklidir.
Bağlantı noktalarındaki bildirim dosyaları
Tüm vcpkg bağlantı noktaları, yükledikleri paketle ilgili meta verileri açıklayan bir vcpkg.json
dosya içermelidir.
vcpkg, bağımlılık ağaçlarını hesaplama, paketleri ada veya açıklamaya göre arama, özellikleri çözme vb. gibi çeşitli amaçlar için paket bildirimindeki meta verileri kullanır.
Paket bildirimi örneği
{
"name": "fmt",
"version": "10.1.1",
"description": "Formatting library for C++. It can be used as a safe alternative to printf or as a fast alternative to IOStreams.",
"homepage": "https://github.com/fmtlib/fmt",
"license": "MIT",
"dependencies": [
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
}
]
}
Projelerdeki bildirim dosyaları
Projenizde bir bildirim dosyası kullanmanın temel amacı bağımlılıklarınızı bildirmektir. Proje bildirimi kullanırken, bağımlılıklarınızın belirli sürümlerini kilitlemek için sürüm kısıtlamaları ve geçersiz kılmalar belirtebilirsiniz. Bu özellik klasik modda kullanılamaz.
Proje bildirimi örneği
{
"dependencies": [ "fmt", "zlib" ],
"builtin-baseline": "3426db05b996481ca31e95fff3734cf23e0f51bc",
"overrides": [
{ "name": "zlib", "version": "1.2.8" }
]
}
Yapılandırma dosyası
vcpkg, daha fazla paket kayıt defteri veya katman bağlantı noktası ve üçlü konum eklemek için bir vcpkg-configuration.json
dosya aracılığıyla yapılandırılabilir.
Yapılandırma dosyası örneği
{
"default-registry": {
"kind": "git",
"baseline": "7476f0d4e77d3333fbb249657df8251c28c4faae",
"repository": "https://github.com/microsoft/vcpkg"
},
"registries": [
{
"kind": "git",
"repository": "https://github.com/microsoft/vcpkg-docs",
"reference": "vcpkg-registry",
"baseline": "768f6a3ad9f9b6c4c2ff390137690cf26e3c3453",
"packages": [ "beicode", "beison" ]
}
],
"overlay-ports": [
"C:\\dev\\my_vcpkg_ports"
]
}
Paketleri bildirim modunda yükleme
Bildirim dosyası kullanarak paketleri yüklemek için, herhangi bir paket bağımsız değişkeni olmadan komutunu kullanırsınız vcpkg install
.
Komut, bildirim (vcpkg.json
) dosyası içeren bir dizinden veya seçeneği kullanılarak sağlanan bildirim dosyasının yolundan --x-manifest-root=<path>
yürütülmelidir.
Bildirim modunda yüklenen paketler, klasik modda olduğu gibi genel installed
dizine yüklenmez. Bunun yerine, her bildirim adlı vcpkg_installed
kendi yükleme dizinini alır; vcpkg_installed
dizin, bildirim dosyasını içeren aynı dizinde oluşturulur.
Bildirim başına bağımsız yükleme ağaçlarının olması, farklı projeler arasındaki bağımlılıkların ayrılmasına olanak tanır. Bu, her bağlantı noktasının yalnızca bir sürümünün yüklenmesine izin veren klasik modun önemli bir sınırlamasını atlatır. Bildirim modu, bağlantı noktalarının sürümlerini proje başına ayrı tutar.
Proje bildirimlerinde özellikleri kullanma
Bildirim dosyaları, "özellikler" kullanılarak ek işlev, davranış ve bağımlılık kümeleri tanımlayabilir.
Projelerinizde, projenizin bölümlerine uygulanan bağımlılıkları etkinleştirmek veya devre dışı bırakmak için özellikler tanımlayabilirsiniz. Örneğin, projeniz birden çok bileşen içeriyorsa, ortak bağımlılıkları "dependencies"
listede tutmak ancak bazılarını ilgili bileşenleriyle sınırlamak isteyebilirsiniz.
Projenizin özelliklerini etkinleştirmek için aşağıdaki yöntemlerden birini kullanabilirsiniz:
--x-feature
seçeneğini komutunavpckg install
geçirin.- CMake'de, ilk çağrıdan önce değerini
VCPKG_MANIFEST_FEATURES
olarakproject()
ayarlayın. - MSBuild'de seçeneği 'VcpkgAdditionalInstallOptions aracılığıyla geçirin
--x-feature
.
Örnek: Proje bildirimlerindeki özellikler
{
"name": "my-game",
"dependencies": [ "grpc" ],
"features": {
"client": {
"description": "client game executable",
"dependencies": [ "sdl2", "bullet3" ]
},
"server": {
"description": "multiplayer server executable",
"dependencies": [ "proxygen" ]
},
"tests": {
"description": "development tests",
"dependencies": [ "gtest" ]
}
}
}
Yalnızca "istemci" bileşeninin bağımlılıklarını oluşturmak için şu komutu çalıştırın:
vcpkg install --x-feature=client
Sonraki adımlar
Şimdi deneyebileceğiniz bazı görevler şunlardır:
- Bildirim modu öğreticisini tamamlama
vcpkg.json
vevcpkg-configuration.json
başvuru makaleleri.- Sürüm oluşturmayı kullanarak tekrarlanabilir derlemeler için sürümlerinizi kilitleme