Meson derleme sistemi sürümü 1.1

X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ve GTK gibi projelerin oluşturulmasında kullanılan Meson 1.1.0 build sisteminin sürümü yayınlandı. Meson'un kodu Python'da yazılmıştır ve Apache 2.0 lisansı 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. Oluşturma sırasında make yardımcı programı yerine Ninja araç seti varsayılan olarak kullanılır, ancak xcode ve VisualStudio gibi diğer arka uçlar da kullanılabilir. 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).

GCC, Clang, Visual Studio ve diğer derleyicileri kullanarak Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS ve Windows üzerinde çapraz derlemeyi ve derlemeyi destekler. 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.

Meson 1.1'in ana yenilikleri:

  • Nesneleri, link_who kullanımını gerektirmeyen dahili bağımlılıklar biçiminde doğrudan yürütülebilir dosyalara eklemek için, notice_dependency() işlevine yeni bir "nesneler:" argümanı eklendi.
  • "Meson devenv -dump" komutu artık standart çıktıya yazdırmak yerine ortam değişkenlerinin yazılacağı bir dosya belirtme seçeneğine sahiptir.
  • Parametreleri Dependency() işlevine geçirmeye hazırlık olarak koşullu ifadeler oluşturmayı kolaylaştırmak için FeatureOption.enable_if ve FeatureOption.disable_if yöntemleri eklendi. opt = get_option('feature').disable_if(not foo, error_message : 'foo da etkinleştirilmediğinde özellik etkinleştirilemez') dep = Dependency('foo', gerekli : opt)
  • Oluşturulan nesnelerin "nesneler:"e argüman olarak iletilmesine izin verilir.
  • Proje işlevi artık proje lisansları hakkında bilgi içeren dosyaların yüklenmesini desteklemektedir.
  • "Sudo meson install" komutunu çalıştırmak, hedef platformlar için yeniden oluşturma sırasında ayrıcalıkların sıfırlanmasını sağlar.
  • "Meson install" komutu, kök haklarını elde etmek için ayrı bir işleyici belirtme yeteneği sağlar (örneğin, polkit, sudo, opendoas veya $MESON_ROOT_CMD'yi seçebilirsiniz). Etkileşimli olmayan modda "meson install" çalıştırıldığında artık ayrıcalıklar yükseltilmeye çalışılmaz.
  • Meson_options.txt yerine meson.options dosyasından seçeneklerin okunmasına yönelik destek eklendi.
  • İç gözlemin ilerleyişi ile ilgili bilgilerin stderr'e yönlendirilmesi sağlanır.
  • Yalnızca kurulum kurallarına sahip olan ve derleme kuralları olmayan projeler oluşturmak için yeni bir "yok" arka ucu (--backend=none) eklendi.
  • Bağımlılığın ('pybind11') pybind11-config betiğini kullanmadan pkg-config ve cmake ile çalışmasına olanak tanıyan yeni bir bağımlılık pybind11 eklendi.
  • "--reconfigure" ve "--wipe" seçeneklerine boş bir builddir ile izin verilir (meson setup --reconfigure builddir ve meson setup --wipe builddir).
  • "meson install --dry-run" çağrıldığında kendi kurulum komut dosyalarınızın çalıştırılmasına izin vermek amacıyla meson.add_install_script() dosyasına Dry_run anahtar sözcüğü için destek eklendi.

Kaynak: opennet.ru

Yorum ekle