Meson 1.1 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.1.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.1-ın əsas yenilikləri:

  • Yeni "obyektlər:" arqumenti declare_dependency() funksiyasına əlavə edilib ki, obyektləri birbaşa icra olunanlara link_who tələb etməyən daxili asılılıqlar kimi əlavə etsin.
  • "meson devenv --dump" əmri standart çıxış axınına çıxış əvəzinə ətraf mühit dəyişənlərinin yazılması üçün fayl təyin etmək üçün isteğe bağlı qabiliyyətə malikdir.
  • Dependency() funksiyasına parametrlərin ötürülməsinə hazırlıq zamanı şərt yaratmağı asanlaşdırmaq üçün FeatureOption.enable_if və FeatureOption.disable_if üsulları əlavə edildi. opt = get_option('xüsusiyyət').disable_if(foo deyil, error_message : 'foo da aktiv edilmədikdə funksiyanı aktivləşdirmək mümkün deyil') dep = asılılıq('foo', tələb olunur: seçim)
  • Yaradılmış obyektlərin "obyektlər:" arqumentləri arasında keçməsinə icazə verilir.
  • Layihə funksiyası layihə lisenziyaları haqqında məlumat olan faylların quraşdırılmasını dəstəkləyir.
  • "Sudo meson install"ın icrası hədəf platformalar üçün yenidən qurulma zamanı imtiyazların sıfırlanmasını təmin edir.
  • "Meson quraşdırma" əmri kök icazələrini əldə etmək üçün ayrıca işləyicini təyin etmək imkanı verir (məsələn, siz polkit, sudo, opendoas və ya $MESON_ROOT_CMD seçə bilərsiniz). Qeyri-interaktiv rejimdə "meson quraşdırma" funksiyasını işə salmaq artıq imtiyazları yüksəltməyə cəhd etmir.
  • meson_options.txt əvəzinə meson.options faylından seçimləri oxumaq üçün dəstək əlavə edildi.
  • İntrospeksiyanın gedişi haqqında məlumatın çıxışının stderr-ə yönləndirilməsi təmin edilmişdir.
  • Yalnız quraşdırma qaydaları olan və qurma qaydaları olmayan layihələr yaratmaq üçün yeni "none" backend (--backend=none) əlavə edildi.
  • Dependency('pybind11') pybind11-config skriptindən istifadə etmədən pkg-config və cmake ilə işləmək üçün yeni pybind11 asılılığı əlavə edildi.
  • "--reconfigure" və "--wipe" seçimlərinə (meson setup --reconfigure builddir və meson setup --wipe builddir ) boş builddir ilə icazə verilir.
  • meson.add_install_script() "meson install --dry-run" çağırarkən öz quraşdırma skriptlərinizi işə salmağa imkan verən dry_run açar sözü üçün dəstək əlavə etdi.

Mənbə: opennet.ru

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