Meson 0.52 montaj sisteminin buraxılışı

nəşr edilmişdir sistem buraxılışını qurmaq Mezon 0.52, X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME və GTK+ kimi layihələri qurmaq üçün istifadə olunur. Meson kodu Python-da yazılmışdır və təchiz olunmuşdur Apache 2.0 altında lisenziyalıdır.

Meson inkişafının əsas məqsədi montaj prosesinin yüksək sürətini rahatlıq və istifadə rahatlığı ilə birlikdə təmin etməkdir. make utilitinin əvəzinə standart qurma alətlər dəstindən istifadə edir Ninja, lakin xcode və VisualStudio kimi digər backendlərdən də istifadə etmək mümkündü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. Assembly qaydaları sadələşdirilmiş domenə xas dildə göstərilib, istifadəçi üçün yüksək oxunaqlı və başa düşüləndir (müəlliflərin nəzərdə tutduğu kimi, tərtibatçı qaydaları yazmaq üçün minimum vaxt sərf etməlidir).

Dəstəklənir GCC, Clang, Visual Studio və digər tərtibçilərdən istifadə edərək Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS və Windows üzərində çarpaz tərtib edin və qurun. 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 komponentlərin yenidən qurulduğu artımlı qurma rejimi dəstəklənir. Meson təkrarlanan konstruksiyalar yaratmaq üçün istifadə oluna bilər, burada quruluşun müxtəlif mühitlərdə işlədilməsi tamamilə eyni icra olunan faylların yaranması ilə nəticələnir.

Əsas yeniliklər Mezon 0.52:

  • Kompilyator kimi Emscripten istifadə edərək Webassembly üçün eksperimental dəstək əlavə edildi;
  • Illumos və Solaris platformalarına dəstək əhəmiyyətli dərəcədə təkmilləşdirilmiş və işlək vəziyyətə gətirilmişdir;
  • Sistemdə gettext alətlər dəsti quraşdırılmadıqda gettext əsaslı beynəlmiləlləşdirmə skriptlərinin nəzərə alınmamasını təmin edir (əvvəllər gettext olmayan sistemlərdə i18n modulundan istifadə edərkən xəta göstərilirdi);
  • Statik kitabxanalar üçün təkmilləşdirilmiş dəstək. Silinmiş statik kitabxanalardan istifadə edərkən bir çox problemlər həll edildi;
  • Ətraf mühit dəyişənlərini təyin etmək üçün lüğətlərdən istifadə etmək imkanı əlavə edildi. Ətraf mühitə () zəng edərkən birinci element indi mühit dəyişənlərinin açar/dəyər formasında təyin olunduğu lüğət kimi təyin edilə bilər. Bu dəyişənlər set() metodu ilə ayrı-ayrılıqda qurulmuş kimi mühit_obyektinə köçürüləcək. Lüğətlər də indi "env" arqumentini dəstəkləyən müxtəlif funksiyalara ötürülə bilər;
  • Əlavə edilmiş "runtarget alias_target(target_name, dep1, ...)" funksiyası seçilmiş qurma arxa ucu (məsələn, "ninja target_name") ilə çağırıla bilən yeni birinci səviyyəli qurma hədəfi yaradır. Bu qurma hədəfi heç bir əmr işlətmir, lakin bütün asılılıqların qurulmasını təmin edir;
  • “[xüsusiyyətlər]” bölməsində sys_root parametri varsa, çarpaz kompilyasiya zamanı PKG_CONFIG_SYSROOT_DIR mühit dəyişəninin avtomatik təyini aktivləşdirildi;
  • GDB-ni müəyyən edilmiş test skripti ilə işə salmaq üçün "--gdb test adı" seçimini təyin edərkən GDB sazlayıcısına gedən yolu müəyyən etmək üçün "--gdb-path" seçimi əlavə edildi;
  • Bu linteri bütün mənbə faylları ilə işlətmək üçün cingiltili qurma hədəfinin avtomatik aşkarlanması əlavə edildi. Hədəf sistemdə clang-tidy mövcud olduqda və layihə kökündə “.clang-tidy” (və ya “_clang-tidy”) faylı müəyyən edildikdə yaradılır;
  • Clang uzantısında istifadə üçün asılılıq ('bloklar') əlavə edildi Bloklar;
  • Bağlayıcı və kompilyator görünüşləri bir-birindən ayrılaraq, müxtəlif kompilyator və əlaqələndirici birləşmələrdən istifadə etməyə imkan verir;
  • all_sources() metoduna əlavə olaraq SourceSet obyektlərinə all_dependencies() metodu əlavə edildi;
  • run_project_tests.py-də "--yalnız" seçimi selektiv olaraq testləri yerinə yetirmək üçün əlavə edilmişdir (məsələn, "python run_project_tests.py —yalnız fortran python3");
  • find_program() funksiyası indi proqramın yalnız tələb olunan versiyalarını axtarmaq imkanına malikdir (versiya proqramı “-version” seçimi ilə işə salmaqla müəyyən edilir);
  • Simvolların ixracına nəzarət etmək üçün vs_module_defs seçimi shared_library() funksiyasına bənzər shared_module() funksiyasına əlavə edilmişdir.
  • kconfig modulu giriş faylını təyin etmək üçün configure_file() funksiyasını dəstəkləmək üçün genişləndirilmişdir;
  • configure_file() üçün “command:” işləyiciləri üçün çoxlu giriş fayllarını təyin etmək imkanı əlavə edildi;
  • Arxiv yaratmaq üçün "dist" əmri birinci səviyyəli əmrlər kateqoriyasına köçürüldü (əvvəllər komanda ninja ilə əlaqəli idi). Yaradılacaq arxivlərin növlərini müəyyən etmək üçün "--formatlar" seçimi əlavə edildi (məsələn,
    "meson dist -formats=xztar,zip").

Mənbə: opennet.ru

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