Meson derleme sistemi sürümü 0.52

yayınlanan sistem sürümü oluşturma Mezon 0.52X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ve GTK+ gibi projeler oluşturmak için kullanılır. Meson kodu Python'da yazılmıştır ve sağlanan Apache 2.0 altında lisanslanmıştır.

Meson'un geliştirilmesinin temel amacı, montaj sürecinde yüksek hız ile birlikte rahatlık ve kullanım kolaylığı sağlamaktır. Make yardımcı programı yerine, varsayılan yapı araç setini kullanır Ninjaancak xcode ve VisualStudio gibi diğer arka uçları kullanmak da mümkündür. Sistem, dağıtımlara yönelik paketler oluşturmak için Meson'u kullanmanıza olanak tanıyan yerleşik bir çoklu platform bağımlılık işleyicisine sahiptir. Derleme kuralları basitleştirilmiş, alana özgü bir dilde belirtilir, kullanıcı için oldukça okunaklı ve anlaşılırdır (yazarların amaçladığı gibi, geliştiricinin kuralları yazmak için minimum zaman harcaması gerekir).

Destekleniyor GCC, Clang, Visual Studio ve diğer derleyicileri kullanarak Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS ve Windows üzerinde çapraz derleme ve derleme yapın. C, C++, Fortran, Java ve Rust dahil olmak üzere çeşitli programlama dillerinde projeler oluşturmak mümkündür. Yalnızca son yapıdan bu yana yapılan değişikliklerle doğrudan ilgili bileşenlerin yeniden oluşturulduğu artımlı yapı modu desteklenir. Meson, yapının farklı ortamlarda çalıştırılmasının tamamen aynı yürütülebilir dosyaların oluşturulmasıyla sonuçlandığı tekrarlanabilir yapılar oluşturmak için kullanılabilir.

Ana yenilikler Mezon 0.52:

  • Derleyici olarak Emscripten kullanılarak Webassembly için deneysel destek eklendi;
  • Illumos ve Solaris platformlarına yönelik destek önemli ölçüde iyileştirildi ve çalışır duruma getirildi;
  • Sistemde gettext araç seti kurulu değilse gettext tabanlı uluslararasılaştırma komut dosyalarının yok sayılmasını sağlar (daha önce gettext olmayan sistemlerde i18n modülü kullanılırken bir hata görüntüleniyordu);
  • Statik kitaplıklar için geliştirilmiş destek. Kaldırılan statik kitaplıkları kullanırken ortaya çıkan birçok sorun çözüldü;
  • Ortam değişkenlerini atamak için sözlük kullanma yeteneği eklendi. Environment() çağrılırken, ilk öğe artık ortam değişkenlerinin anahtar/değer biçiminde tanımlandığı bir sözlük olarak belirtilebilir. Bu değişkenler, sanki set() yöntemi aracılığıyla ayrı ayrı ayarlanmış gibi, ambient_object'e aktarılacaktır. Sözlükler artık "env" argümanını destekleyen çeşitli işlevlere de aktarılabilir;
  • Seçilen derleme arka ucuyla (ör. "ninja hedef_adı") çağrılabilecek yeni bir birinci düzey derleme hedefi oluşturan "runtarget alias_target(target_name, dep1, ...)" işlevi eklendi. Bu derleme hedefi herhangi bir komutu çalıştırmaz ancak tüm bağımlılıkların oluşturulmasını sağlar;
  • "[properties]" bölümünde bir sys_root ayarı varsa, çapraz derleme sırasında PKG_CONFIG_SYSROOT_DIR ortam değişkeninin otomatik ayarı etkinleştirildi;
  • GDB'yi belirtilen test komut dosyasıyla çalıştırmak için "--gdb testname" seçeneğini belirlerken GDB hata ayıklayıcısının yolunu belirlemek için "--gdb-path" seçeneği eklendi;
  • Bu linter'ı tüm kaynak dosyalarla çalıştırmak için çıngırak-düzenli yapı hedefinin otomatik tespiti eklendi. Hedef, eğer sistemde clang-tidy mevcutsa ve proje kökünde “.clang-tidy” (veya “_clang-tidy”) dosyası tanımlanmışsa oluşturulur;
  • Clang uzantısında kullanılmak üzere bağımlılık('bloklar') eklendi Blokları;
  • Bağlayıcı ve derleyici görünümleri, farklı derleyici ve bağlayıcı kombinasyonlarının kullanılmasına izin verecek şekilde ayrılmıştır;
  • All_sources() yöntemine ek olarak SourceSet nesnelerine all_dependegency() yöntemi eklendi;
  • run_project_tests.py'de, testleri seçici olarak çalıştırmak için “--only” seçeneği eklenmiştir (örneğin, “python run_project_tests.py —only fortran python3”);
  • Find_program() işlevi artık bir programın yalnızca gerekli sürümlerini arama yeteneğine sahiptir (sürüm, programın “-version” seçeneğiyle çalıştırılmasıyla belirlenir);
  • Sembollerin dışa aktarımını kontrol etmek için, paylaşılan_library()'ye benzer şekilde vs_module_defs seçeneği, paylaşılan_module() işlevine eklenmiştir;
  • kconfig modülü, bir girdi dosyasının belirlenmesi içinconfigure_file() işlevini destekleyecek şekilde genişletildi;
  • "komut:" işleyicileri için birden fazla giriş dosyası belirtme yeteneği,configure_file(); dosyasına eklendi;
  • Arşiv oluşturmaya yönelik "dist" komutu, birinci düzey komutlar kategorisine taşındı (daha önce komut ninjaya bağlıydı). Oluşturulacak arşiv türlerini tanımlamak için "--formats" seçeneği eklendi (örneğin,
    "meson dist -formats=xztar,zip").

Kaynak: opennet.ru

Yorum ekle