Meson derleme sistemi sürümü 1.0

X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ve GTK gibi projelerin oluşturulmasında kullanılan Meson 1.0.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.0'in ana yenilikleri:

  • Rust dilinde proje oluşturmaya yönelik bir modülün kararlı olduğu bildirildi. Bu modül Mesa projesinde Rust ile yazılmış bileşenleri oluşturmak için kullanılır.
  • Çoğu derleyici kontrol işlevinde desteklenen önek seçeneği, dizelere ek olarak dizileri de yönetme yeteneği sağlar. Örneğin, artık şunu belirtebilirsiniz: cc.check_header('GL/wglew.h', prefix : ['#include ', '#katmak '])
  • Çalışma dizininin geçersiz kılınmasına izin vermek için yeni "--workdir" argümanı eklendi. Örneğin, çalışma dizini yerine geçerli dizini kullanmak için şunu çalıştırabilirsiniz: meson devenv -C builddir --workdir .
  • Bir dizide veya sözlükte bir öğenin varlığına yönelik önceden mevcut kontrole benzer şekilde, bir dizede bir alt dizenin oluşumunu belirlemek için yeni "in" ve "not in" operatörleri önerilmiştir. Örneğin: fs = import('fs') if 'something' in fs.read('somefile') # True endif
  • Mevcut tüm derleyici uyarılarının çıktısını etkinleştiren “warning-level=everything” seçeneği eklendi (clang ve MSVC'de -Weverything ve /Wall kullanılır ve GCC uyarıları ayrı olarak dahil edilir, yaklaşık olarak -Weverything'e karşılık gelir) çınlama modunda).
  • Rust.bindgen yöntemi, derleyici tarafından işlenmesi gereken bağımlılıklara giden yolları geçirmek için "bağımlılıklar" argümanını işleme yeteneğini uygular.
  • Java.generate_native_headers işlevi kullanımdan kaldırıldı ve Meson'un ortak işlev adlandırma stiline uyacak şekilde java.native_headers olarak yeniden adlandırıldı.

Kaynak: opennet.ru

Yorum ekle