Aracılığıyla paylaş


Arşiv Dosyalarını Paketleme Örneği: zlib

Ile Bootstrap create

İlk olarak, kitaplığın kaynaklarının genel olarak erişilebilir bir arşivini bulun. Zip, gzip ve bzip'nin tümü desteklenir. Resmi olmayan aynalar yerine resmi kaynakları veya aynaları kesinlikle tercih edin.

Zlib'in web sitesine baktığımızda URL http://zlib.net/zlib-1.2.13.tar.gz uygun görünüyor.

İkincisi, uygun bir paket adı belirleyin. Bu ASCII, küçük harf ve kitaplığın "insan adı" bilen biri tarafından tanınabilir olmalıdır. Kitaplık zaten başka bir paket yöneticisinde paketlenmişse, bu adı tercih edin.

Zlib zaten zlib olarak paketlendiğinden, bu örnek için zlib2 adını kullanacağız.

Son olarak, sunucunun arşiv adı çok açıklayıcı değilse (GitHub'dan sıkıştırılmış işleme veya dal indirme gibi), formun <packagename>-<version>.zipgüzel bir arşiv adını seçin.

zlib-1.2.13.zip iyi bir ad olduğundan değişiklik gerekmez.

Tüm bu bilgiler komutuna create geçirilebilir. Bu komut kaynakları indirir ve içindeki ports/<packagename>paketleme işlemini önyükler.

PS D:\src\vcpkg> .\vcpkg create zlib2 http://zlib.net/zlib-1.2.13.tar.gz zlib-1.2.13.tar.gz
-- Downloading http://zlib.net/zlib-1.2.13.tar.gz -> zlib-1.2.13.tar.gz...
-- Generated portfile: D:\src\vcpkg\ports\zlib2\portfile.cmake
-- Generated manifest: D:\src\vcpkg\ports\zlib2\vcpkg.json
-- To launch an editor for these new files, run
--     .\vcpkg edit zlib2

Bildirim dosyasını oluşturma

Oluşturulan ports/<package>/portfile.cmakeöğesine ek olarak bir ports/<package>/vcpkg.json dosyaya da ihtiyacımız vardır. Bu dosya, paketin meta verilerini açıklayan basit bir alan kümesidir.

Zlib2 için dosyayı ports/zlib2/vcpkg.json aşağıdaki içeriklerle oluşturacağız:

{
  "name": "zlib2",
  "version": "1.2.13",
  "description": "A Massively Spiffy Yet Delicately Unobtrusive Compression Library"
}

Oluşturulan bağlantı noktası dosyasını ayarlama

Oluşturulan portfile.cmake , çoğu kitaplığı vahşi ortamda doğru bir şekilde paketlemek için bazı düzenlemelere ihtiyaç duyar, ancak derlemeyi deneyerek başlayabiliriz.

PS D:\src\vcpkg> .\vcpkg install zlib2
Computing installation plan...
The following packages will be built and installed:
    zlib2[core]:x64-uwp
Starting package 1/1: zlib2:x64-uwp
Building package zlib2[core]:x64-uwp...
-- Using cached C:/src/vcpkg/downloads/zlib-1.2.13.tar.gz
-- Cleaning sources at C:/src/vcpkg/buildtrees/zlib2/src/1.2.13-deec42f53b.clean. Pass --editable to vcpkg to reuse sources.
-- Extracting source C:/src/vcpkg/downloads/zlib-1.2.13.tar.gz
-- Applying patch cmake_dont_build_more_than_needed.patch
-- Using source at C:/src/vcpkg/buildtrees/zlib2/src/1.2.13-deec42f53b.clean
-- Configuring x64-uwp
-- Building x64-uwp-dbg
-- Building x64-uwp-rel
-- Installing: C:/src/vcpkg/packages/zlib2_x64-uwp/share/zlib2/copyright
-- Performing post-build validation
Include files should not be duplicated into the /debug/include directory. If this cannot be disabled in the project cmake, use
    file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
/debug/share should not exist. Please reorganize any important files, then use
    file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
The software license must be available at ${CURRENT_PACKAGES_DIR}/share/zlib2/copyright
Found 3 error(s). Please correct the portfile:
    D:\src\vcpkg\ports\zlib2\portfile.cmake

Bu noktada, bağlantı noktası dosyasının kalitesini sürekli olarak artırırken hata iletilerini ve günlük dosyalarını okumak önemlidir. Zlib, pakete kopyalamak için LİSANS'ın ayrı bir kopyasını sağlamak, yürütülebilir dosyalar ve üst bilgilerin derlenmesi ve yüklenmesini engellemek ve yüklendikten sonra statik kitaplıkları kaldırmak için gerekliydi.

Önerilen örnek bağlantı noktası dosyaları

Dizinde ports/ , CMake'i temel almamış birçok kitaplık da dahil olmak üzere örnek olarak kullanılabilecek birçok kitaplık vardır.

  • Yalnızca üst bilgi kitaplıkları
    • rapidjson
    • range-v3
  • MSBuild tabanlı
    • chakracore
  • CMake olmayan, özel derleme sistemi
    • openssl
    • ffmpeg