Meson 1.0 montaj sisteminin buraxılışı

X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME və GTK kimi layihələrin qurulması üçün istifadə edilən Meson 1.0.0 qurma sisteminin buraxılışı nəşr olundu. Meson kodu Python-da yazılmışdır və Apache 2.0 lisenziyası altında lisenziyalıdır.

Meson-un əsas inkişaf məqsədi rahatlıq və istifadə rahatlığı ilə birlikdə yüksək sürətli montaj prosesini təmin etməkdir. Yaratmaq əvəzinə, quruluş standart olaraq Ninja alət dəstindən istifadə edir, lakin xcode və VisualStudio kimi digər arxa hissələrdən də istifadə edilə bilər. Sistem, paylamalar üçün paketlər yaratmaq üçün Meson-dan istifadə etməyə imkan verən daxili çox platformalı asılılıq işləyicisinə malikdir. Montaj qaydaları sadələşdirilmiş domenə xas dildə qurulur, onlar yaxşı oxunaqlıdır və istifadəçi üçün başa düşüləndir (müəlliflərin fikrinə görə, tərtibatçı qaydaların yazılmasına minimum vaxt sərf etməlidir).

GCC, Clang, Visual Studio və digər kompilyatorlardan istifadə edərək Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS və Windows üzərində çarpaz tərtib və tikinti dəstəklənir. C, C++, Fortran, Java və Rust daxil olmaqla müxtəlif proqramlaşdırma dillərində layihələr qurmaq mümkündür. Yalnız sonuncu qurmadan sonra edilən dəyişikliklərlə birbaşa əlaqəli olan komponentlərin yenidən qurulduğu artımlı qurma rejimi dəstəklənir. Meson təkrarlanan quruluşlar yaratmaq üçün istifadə edilə bilər, burada quruluşun müxtəlif mühitlərdə işlədilməsi tamamilə eyni icra edilə bilənlərlə nəticələnir.

Meson 1.0-ın əsas yenilikləri:

  • Rust dilində layihələrin qurulması modulu sabit elan edildi. Bu modul Mesa layihəsində Rustda yazılmış komponentləri qurmaq üçün istifadə olunur.
  • Əksər kompilyator yoxlama funksiyaları tərəfindən dəstəklənən prefiks seçimi sətirlərdən başqa massivləri idarə etmək qabiliyyətini həyata keçirir. Məsələn, indi təyin edə bilərsiniz: cc.check_header('GL/wglew.h', prefiks : ['#include ', ' #daxil edin '])
  • İş qovluğunu ləğv etməyə imkan vermək üçün yeni "--workdir" arqumenti əlavə edildi. Məsələn, işçi qovluğu yerinə cari qovluqdan istifadə etmək üçün aşağıdakıları işlədə bilərsiniz: meson devenv -C builddir --workdir .
  • Massivdə və ya lüğətdə elementin baş verməsi üçün əvvəllər mövcud yoxlamaya bənzər sətirdə alt sətirin baş verməsini müəyyən etmək üçün yeni "in" və "not in" operatorları təklif olunur. Məsələn: fs = import('fs') əgər fs.read('somefile') içində 'bir şey' # True endif
  • Bütün mövcud kompilyator xəbərdarlıqlarının çıxışını aktivləşdirmək üçün "xəbərdarlıq səviyyəsi=hər şey" seçimi əlavə edildi (clang və MSVC-də -Weverything və /Wall istifadə edir və GCC-də cingiltidə -Hər şey rejiminə təxminən uyğun gələn ayrı-ayrı xəbərdarlıqlar daxil edilir).
  • Rust.bindgen metodu kompilyator tərəfindən emal edilməli olan asılılıqlara yollar ötürmək üçün "asılılıqlar" arqumentini emal etmək qabiliyyətini həyata keçirir.
  • java.generate_native_headers funksiyası köhnəldi və Mesonun ümumi funksiya adlandırma üslubuna uyğun olaraq java.native_headers olaraq adlandırıldı.

Mənbə: opennet.ru

Добавить комментарий