Aracılığıyla paylaş


Katman bağlantı noktaları

Genellikle vcpkg bağlantı noktaları kayıt defterlerinden elde edilir. Yüklediğiniz bağlantı noktalarının çoğunun konumundaki https://github.com/Microsoft/vcpkgresmi vcpkg kayıt defterinden gelmesi büyük olasılıkla mümkündür. vcpkg, dosya sistemi aracılığıyla kullanabileceğiniz bağlantı noktalarını yüklemenize olanak tanır; bu bağlantı noktalarına yer paylaşımlı bağlantı noktaları diyoruz.

Katman bağlantı noktası, mevcut bir bağlantı noktasının yerine veya kayıt defterinde bulunmayan yeni bir bağlantı noktası olarak görev yapabilir. Paket adlarını çözerken katman bağlantı noktaları önceliklidir.

Katman bağlantı noktaları aşağıdaki sırayla değerlendirilir:

  • komutuyla komut satırında --overlay-portsbelirtilen dizin veya dizinde veya CONTROLvcpkg.json dosyası yoksa adlandırılmış alt dizinler.
  • aracılığıyla bir vcpkg-configuration.json dosyada overlay-portsbelirtilen dizin veya dizinde veya CONTROL dosyası vcpkg.json yoksa adlandırılmış alt dizinler.
  • Ortam değişkeni girdileri tarafından VCPKG_OVERLAY_PORTS belirtilen dizin veya dizinde CONTROL veya vcpkg.json dosyası yoksa adlandırılmış alt dizinler.

Bağlantı noktası adları çözümlenirken, eşleşen katman bağlantı noktası içeren ilk konum seçilir.

Katman bağlantı noktası kullanma

Katman bağlantı noktası belirtilirse, önce vcpkg bu dizini bağlantı noktası olarak yüklemeyi dener. Bu başarılı olursa, dizinin kendisi bir bağlantı noktası olarak kabul edilir ve katman adı veya CONTROL dosyasından vcpkg.json türetilir. Aksi takdirde, katman bağlantı noktası adına sahip alt dizinler dikkate alınır.

Geçerli bağlantı noktaları , ve portfile.cmake veya vcpkg.jsoniçerirCONTROL.

Örneğin, aşağıdaki dizin yapısını göz önünde bulundurun:

  • x/vcpkg.json "name", alanı olarak "a"ayarlanır.
  • x/portfile.cmake, için ailişkili derleme yönergeleri.
  • x/b/vcpkg.json "name", alanı olarak "b"ayarlanır.
  • x/b/portfile.cmake, için bilişkili derleme yönergeleri.
  • y/c/vcpkg.json "name", alanı olarak "c"ayarlanır.
  • y/c/portfile.cmake, için cilişkili derleme yönergeleri.
  • y/d/vcpkg.json "name", alanı olarak "d"ayarlanır.
  • y/d/portfile.cmake, için dilişkili derleme yönergeleri.

vcpkg, aşağıdaki ayarlara göre aşağıdaki bağlantı noktalarını dikkate alır:

  • --overlay-ports=x: Bu katmanda bir bağlantı noktası vardır: a. Ad kaynağından vcpkg.jsontüretilir. Alt dizin b dikkate alınmaz.
  • --overlay-ports=x/b: Bu katmanda bir bağlantı noktası vardır: b. Ad kaynağından vcpkg.jsontüretilir.
  • --overlay-ports=y: Bu katmanda c iki bağlantı noktası vardır ve d. Adları alt dizinlerinden ytüretilir ve içinde bildirilen adlar vcpkg.json eşleşmelidir veya vcpkg'nin veya cdeğerini dikkate d alması istenirse bir hata oluşturulur.

Katman bağlantı noktası yapılandırmasına çeşitli yollarla ekleyebilirsiniz:

  • Komut satırı: Komut satırına bir veya daha fazla --overlay-ports=<directory> seçenek ekleyin.
  • Bildirim: içindeki "overlay-ports"diziyi vcpkg-configuration.json doldurun.
  • Ortam değişkeni: Yol karakteri sınırlandırılmış listesine ayarlayın VCPKG_OVERLAY_PORTS .

Örnek: Katman Bağlantı Noktaları Örneği

Bu dizin yapısı göz önünde bulundurulduğunda:

Birden çok katman bağlantı noktası dizini içeren örnek

team-ports adlı katman dizini sqlite3, rapidjson ve curl bağlantı noktalarını içerir. my-ports adlı katman dizini sqlite3 ve rapidjson bağlantı noktalarını içerir. vcpkg dizini varsayılan kayıt defterini içerir.

Çalıştır:

vcpkg install sqlite3 --overlay-ports=my-ports --overlay-ports=team-ports

Yüklemek için:

  • sqlite3 Kaynak my-ports

Çalıştır:

vcpkg install sqlite3 rapidjson curl \
    --overlay-ports=my-ports/rapidjson \
    --overlay-ports=vcpkg/ports/curl \
    --overlay-ports=team-ports

Yüklemek için:

  • sqlite3 Kaynak team-ports
  • rapidjson Kaynak my-ports
  • curl Kaynak vcpkg/ports

Örnek: Sistem paketi yöneticisi bağımlılığını kullanmak için katman bağlantı noktalarını kullanma

Bir vcpkg yerine sistem paketi yöneticisi bağımlılığı kullanmak için blog gönderimize bakın.