Meson qurish tizimining 0.52 versiyasi

nashr etilgan tizim versiyasini yaratish Mezon 0.52, X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME va GTK+ kabi loyihalarni yaratishda foydalaniladi. Meson kodi Pythonda yozilgan va ta'minlangan Apache 2.0 ostida litsenziyalangan.

Mesonni ishlab chiqishning asosiy maqsadi qulaylik va foydalanish qulayligi bilan birgalikda yig'ish jarayonining yuqori tezligini ta'minlashdir. make yordam dasturi o'rniga standart tuzilma asboblar to'plamidan foydalanadi Ninja, lekin xcode va VisualStudio kabi boshqa backendlardan ham foydalanish mumkin. Tizimda o'rnatilgan ko'p platformali qaramlik ishlovchisi mavjud bo'lib, u Meson-dan tarqatish uchun paketlar yaratish uchun foydalanish imkonini beradi. Yig'ish qoidalari soddalashtirilgan domenga xos tilda ko'rsatilgan, foydalanuvchi uchun juda o'qilishi mumkin va tushunarli (mualliflar nazarda tutganidek, ishlab chiquvchi qoidalarni yozish uchun minimal vaqt sarflashi kerak).

Qo'llab-quvvatlanadi GCC, Clang, Visual Studio va boshqa kompilyatorlar yordamida Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS va Windows-da oʻzaro kompilyatsiya qiling va tuzing. C, C++, Fortran, Java va Rust kabi turli xil dasturlash tillarida loyihalar yaratish mumkin. Qo'shimcha qurish rejimi qo'llab-quvvatlanadi, unda faqat oxirgi tuzilishdan keyin kiritilgan o'zgarishlarga bevosita bog'liq bo'lgan komponentlar qayta tiklanadi. Meson takrorlanadigan tuzilmalarni yaratish uchun ishlatilishi mumkin, bunda qurilishni turli muhitlarda ishga tushirish butunlay bir xil bajariladigan fayllarni yaratishga olib keladi.

asosiy yangiliklar Mezon 0.52:

  • Kompilyator sifatida Emscripten-dan foydalangan holda Webassembly uchun tajribaviy yordam qo'shildi;
  • Illumos va Solaris platformalarini qo'llab-quvvatlash sezilarli darajada yaxshilandi va ish holatiga keltirildi;
  • Agar tizimda gettext asboblar to'plami o'rnatilmagan bo'lsa, gettext-ga asoslangan xalqarolashtirish skriptlari e'tiborga olinmasligini ta'minlaydi (ilgari gettextsiz tizimlarda i18n modulidan foydalanishda xatolik ko'rsatilgan);
  • Statik kutubxonalar uchun yaxshilangan yordam. O'chirilgan statik kutubxonalardan foydalanishda ko'plab muammolar hal qilindi;
  • Atrof-muhit o'zgaruvchilarini belgilash uchun lug'atlardan foydalanish imkoniyati qo'shildi. Environment() ga qo'ng'iroq qilishda birinchi elementni endi muhit o'zgaruvchilari kalit/qiymat shaklida aniqlangan lug'at sifatida ko'rsatish mumkin. Bu o'zgaruvchilar set() usuli orqali alohida o'rnatilgandek muhit_obyektiga o'tkaziladi. Lug'atlar endi "env" argumentini qo'llab-quvvatlaydigan turli funktsiyalarga ham o'tkazilishi mumkin;
  • “Runtarget alias_target(target_name, dep1, ...)” funksiyasi qo‘shilgan bo‘lib, u tanlangan tuzilish backend (masalan, “ninja target_name”) bilan chaqirilishi mumkin bo‘lgan yangi birinchi darajali qurish maqsadini yaratadi. Ushbu qurish maqsadi hech qanday buyruqlarni bajarmaydi, lekin barcha bog'liqliklarning tuzilishini ta'minlaydi;
  • Agar “[xususiyatlar]” bo‘limida sys_root sozlamasi mavjud bo‘lsa, o‘zaro kompilyatsiya paytida PKG_CONFIG_SYSROOT_DIR muhit o‘zgaruvchisini avtomatik sozlash yoqilgan;
  • Belgilangan test skripti bilan GDBni ishga tushirish uchun "--gdb testname" parametrini belgilashda GDB tuzatuvchisiga yo'lni aniqlash uchun "--gdb-path" opsiyasi qo'shildi;
  • Ushbu linterni barcha manba fayllari bilan ishlatish uchun jarangsiz qurish maqsadini avtomatik aniqlash qo'shildi. Maqsad, agar tizimda clang-tidy mavjud bo'lsa va loyiha ildizida ".clang-tidy" (yoki "_clang-tidy") fayli aniqlangan bo'lsa, yaratiladi;
  • Clang kengaytmasida foydalanish uchun qo'shilgan qaramlik ('bloklar'). Bloklar;
  • Bog'lovchi va kompilyator ko'rinishlari ajratilgan bo'lib, kompilyatorlar va bog'lovchilarning turli kombinatsiyalaridan foydalanishga imkon beradi;
  • all_sources() usulidan tashqari SourceSet obyektlariga all_dependencies() usuli qo‘shildi;
  • run_project_tests.py da "--only" opsiyasi tanlab bajariladigan testlar uchun qo'shilgan (masalan, "python run_project_tests.py -faqat fortran python3");
  • find_program() funksiyasi endi faqat dasturning kerakli versiyalarini qidirish imkoniyatiga ega (versiya dasturni “-version” opsiyasi bilan ishga tushirish orqali aniqlanadi);
  • Belgilar eksportini boshqarish uchun shared_library() funksiyasiga oʻxshash share_module() funksiyasiga vs_module_defs opsiyasi qoʻshildi.
  • Kconfig moduli kirish faylini belgilash uchun configure_file() ni qo'llab-quvvatlash uchun kengaytirildi;
  • configure_file() ga “buyruq:” ishlov beruvchilari uchun bir nechta kirish fayllarini belgilash imkoniyati qo'shildi;
  • Arxiv yaratish uchun "dist" buyrug'i birinchi darajali buyruqlar toifasiga ko'chirildi (ilgari buyruq ninja bilan bog'langan edi). Yaratiladigan arxiv turlarini aniqlash uchun "--formatlar" opsiyasi qo'shildi (masalan,
    "meson dist -formats=xztar,zip").

Manba: opennet.ru

a Izoh qo'shish