vcpkg-configuration.json Başvurusu

Dosyavcpkg-configuration.json, ile vcpkg.jsonbirlikte proje bildiriminin bir bölümünü oluşturur. Dosyadaki vcpkg-configuration.json tüm alanlar yalnızca üst düzey projeden kullanılır; vcpkg-configuration.json herhangi bir bağımlılıktaki dosyalar yoksayılır.

Bildirim Modunda, vcpkg-configuration.json yanında vcpkg.json ayrı bir dosyada olabilir veya içine eklenebilir"vcpkg-configuration" field.

Klasik Modda vcpkg, vcpkg örneğinin kökündeki dosyayı kullanırvcpkg-configuration.json.

Vcpkg ile kayıt defterlerini kullanmaya genel bakış için bkz . Kayıt Defterlerini Kullanma.

En son JSON Şemasına adresinden https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.jsonulaşabilirsiniz. Visual Studio ve Visual Studio Code gibi JSON Şeması desteğine sahip IDE'ler, otomatik tamamlama ve söz dizimi denetimi sağlamak için bu dosyayı kullanabilir. Çoğu IDE için, url'nizde vcpkg-configuration.json bu URL'yi ayarlamanız "$schema" gerekir.

Örnek

{
  "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json",
  "default-registry": {
    "kind": "git",
    "repository": "https://internal/mirror/of/github.com/Microsoft/vcpkg",
    "baseline": "eefee7408133f3a0fef711ef9c6a3677b7e06fd7"
  },
  "registries": [
    {
      "kind": "git",
      "repository": "https://github.com/microsoft/vcpkg-docs",
      "reference": "vcpkg-registry",
      "baseline": "768f6a3ad9f9b6c4c2ff390137690cf26e3c3453",
      "packages": [ "beicode", "beison" ]
    }
  ],
  "overlay-ports": [
    "./team-ports",
    "./custom-ports"
   ],
  "overlay-triplets": [ "./my-triplets" ]
}

Bu örnek, https://github.com/microsoft/vcpkg-docs/tree/vcpkg-registryve beisonkitaplıklarının beicode kaynağı olarak özel bir kayıt defteri ekler. Diğer tüm bağlantı noktaları, konumunda https://internal/mirror/of/github.com/Microsoft/vcpkgbarındırılan Curated Catalog'ın iç bir yansıtmasından bulunur.

Örnek ayrıca kaynak kod deposunda bulunan bağlantı noktaları ve üçlüler için özel katman yapılandırmaları da sağlar.

Üst Düzey Alanlar

Adı Tür Açıklama
default-registry Kayıt defteri veya null Belirli bir kayıt defteri olmayan tüm bağlantı noktaları için kullanılan kayıt defteri
yer paylaşımlı bağlantı noktaları string[] Katman bağlantı noktaları olarak kullanılacak yolların listesi
yer paylaşımlı üçlüler string[] Katman üçlüleri olarak kullanılacak yolların listesi
Kayıt Kayıt Defteri[] Bağlantı noktalarının alt kümeleri için kullanılacak ek kayıt defterleri

"default-registry"

Daha belirli bir kayıt defteri olmayan tüm bağlantı noktaları için kullanılacak kayıt defteri. Kayıt defteri veya null. isteğe bağlı.

Herhangi bir "packages" desenle eşleşmeyen bağlantı noktaları varsayılan kayıt defterine çözümlenir. Varsayılan kayıt defteri olarak nullbelirtilirse, eşleşmeyen bağlantı noktaları çözümlenmeyecektir. Varsayılan kayıt defteri atlanırsa, değeri "builtin-baseline" olarak "baseline"kullanılarak örtük olarak Bir Builtin Registry olarak ayarlanır.

"registries"

Belirli bağlantı noktaları için kullanılacak ek kayıt defterleri. Kayıt Defterleri dizisi. isteğe bağlı.

"overlay-ports"

Bağlantı noktası katman yollarının listesi. Dize dizisi. isteğe bağlı.

Dizideki her yol aşağıdakilerden birine işaret etmelidir:

  • ve içeren vcpkg.json bir bağlantı noktası dizini portfile.cmake
  • Bağlantı noktalarından (adresinde olmalıdırzlib/vcpkg.json) adlı bağlantı noktasızlibvcpkg.json dizinlerini içeren bir dizin.

Göreli yollar dosyaya vcpkg-configuration.json göre çözümlenir. Mutlak yollar kullanılabilir ancak önerilmez.

"overlay-triplets"

Üçlü katman yollarının listesi. Dize dizisi. isteğe bağlı.

Dizideki her yol üçlü dosyaların dizinine işaret etmelidir (üçlü dosyalar belgelerine bakın). Göreli yollar dosyaya vcpkg-configuration.json göre çözümlenir. Mutlak yollar kullanılabilir ancak önerilmez.

Kayıt Defteri Alanları

Veri Akışı Adı Zorunlu Türü Açıklama
taban çizgisi Git ve Yerleşik Kayıt Defterleri Dize Bu kayıt defterindeki tüm bağlantı noktalarında en düşük sürüm kısıtlaması
tür Yes Dize Kullanılan kayıt defteri türü
Paket Evet, varsayılan değilse Dize Bu kayıt defterinden gelecek bağlantı noktalarının listesi
yol Dosya Sistemi Kayıt Defteri Dize Dosya Sistemi kayıt defterinin yolu
referans Hayır Dize Kullanılabilir sürümler için kullanılacak Git başvurusu
Depo Git Kayıt Defteri Dize Git kayıt defterinin URI'sini

Kayıt Defteri: "kind"

Kullanılan kayıt defteri türü. Bir dize. Gerekli.

"kind" Değer Kayıt Defteri Türü
"filesystem" Dosya Sistemi Kayıt Defteri
"git" Git Kayıt Defteri
"builtin" Yerleşik Kayıt Defteri

Kayıt Defteri: "baseline"

Bu kayıt defterinden kullanılacak en düşük sürümlerin kayıt defterine özgü tanımlayıcısı. Bir dize. Gerekli.

Git Kayıt Defterleri ve Builtin Registry için bu, kayıt defterinin deposunda bir içeren 40 karakterlik git versions/baseline.jsoncommit sha'dır.

Dosya Sistemi Kayıt Defterleri için, kayıt defterinin üzerinde baseline.jsontanımladığı geçerli herhangi bir json özellik adı olabilir. Dosya sistemi kayıt defteri bir taban çizgisi bildirmezse, kullanılan değer olur "default".

Kayıt Defteri: "reference"

Git Kayıt Defteri'nin kullanılabilir sürümlerini listelemek için kullanılan Git başvurusu. Bir dize. isteğe bağlı.

Belirtilmezse, varsayılan olarak olur HEAD. Bu alan, henüz tam olarak yayımlanmamış sürümlere erişmek için bir konu dalı olabilir.

Kayıt Defteri: "repository"

Git Kayıt Defteri'nin URI'sini. Bir dize. Git Kayıt Defterleri için gereklidir.

Dize, Git'in anladığı herhangi bir URI biçimi olabilir:

  • "https://github.com/microsoft/vcpkg"
  • "git@github.com:microsoft/vcpkg"
  • "/dev/vcpkg-registry"

Göreli yollar, vcpkg'nin gelecek sürümlerinde değişecek belirtilmemiş davranışlara sahiptir.

Kayıt Defteri: "path"

Dosya Sistemi Kayıt Defteri yolu. Bir dize. Dosya Sistemi Kayıt Defterleri için gereklidir.

Göreli yollar ile ilgili olarak vcpkg-configuration.jsonçözümlenir.

Kayıt Defteri: "packages"

Bu kayıt defterine atanan bağlantı noktası desenlerinin listesi. Dize dizisi. dışındaki "default-registry"tüm kayıt defterleri için gereklidir.

Her girdi aşağıdakilerden biri olmalıdır:

  • Paketin adı
  • Bir paket adı ön eki ve ardından * (Araç sürümü 2022-12-14'e eklendi)

Paket desenleri yalnızca küçük harfler, basamaklar ve -isteğe bağlı bir sondaki *ile içerebilir.

Geçerli desen örnekleri:

  • *: Tüm bağlantı noktası adlarını eşleştirir
  • boost: Yalnızca bağlantı noktasıyla eşleşir boost
  • b*: Harfle başlayan bağlantı noktalarını eşleştirir b
  • boost-*: Ön ekiyle başlayan bağlantı noktalarını eşleştirir boost-

Geçersiz desen örnekleri:

  • *a (* ön ekteki son karakter olmalıdır)
  • a** (yalnızca bir taneye * izin verilir)
  • a+ (+ geçerli bir desen karakteri değil)
  • a? (? geçerli bir desen karakteri değil)

Bağlantı noktası adlarının nasıl çözüldüğü hakkında daha fazla bilgi için Kayıt Defterlerini Kullanma belgelerine bakın.