Meson qurish tizimining 1.1 versiyasi

Meson 1.1.0 qurish tizimi chiqarildi, u X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME va GTK kabi loyihalarni yaratish uchun ishlatiladi. Meson kodi Python-da yozilgan va Apache 2.0 litsenziyasi ostida litsenziyalangan.

Mesonni ishlab chiqishning asosiy maqsadi qulaylik va foydalanish qulayligi bilan birgalikda yig'ish jarayonining yuqori tezligini ta'minlashdir. Qurilishda make yordam dasturi o'rniga Ninja asboblar to'plami sukut bo'yicha ishlatiladi, ammo 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).

GCC, Clang, Visual Studio va boshqa kompilyatorlar yordamida Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS va Windows tizimlarida oʻzaro kompilyatsiya va qurishni qoʻllab-quvvatlaydi. 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.

Meson 1.1 ning asosiy yangiliklari:

  • Ob'ektlarni link_who dan foydalanishni talab qilmaydigan ichki bog'liqliklar ko'rinishidagi bajariladigan fayllarga to'g'ridan-to'g'ri biriktirish uchun declare_dependency() ga yangi "ob'ektlar:" argumenti qo'shildi.
  • Endi "meson devenv -dump" buyrug'i standart chiqishda chop etish o'rniga muhit o'zgaruvchilari yozish uchun faylni belgilash imkoniyatiga ega.
  • Parametrlarni bog'liqlik() funksiyasiga o'tkazishga tayyorgarlik ko'rishda shartlar yaratishni osonlashtirish uchun FeatureOption.enable_if va FeatureOption.disable_if usullari qo'shildi. opt = get_option('feature').disable_if(foo emas, error_message : 'Foo ham yoqilmagan bo'lsa, xususiyatni yoqib bo'lmaydi') dep = bog'liqlik('foo', zarur: opt)
  • Yaratilgan ob'ektlarni argument sifatida "ob'ektlar:" ga o'tkazishga ruxsat beriladi.
  • Loyiha funktsiyasi endi loyiha litsenziyalari haqidagi ma'lumotlarga ega fayllarni o'rnatishni qo'llab-quvvatlaydi.
  • "Sudo meson install" ni ishga tushirish maqsadli platformalar uchun qayta qurish paytida imtiyozlar qayta o'rnatilishini ta'minlaydi.
  • "Meson install" buyrug'i ildiz huquqlarini olish uchun alohida ishlov beruvchini belgilash imkoniyatini beradi (masalan, siz polkit, sudo, opendoas yoki $MESON_ROOT_CMD ni tanlashingiz mumkin). Interaktiv bo'lmagan rejimda "meson install" ni ishga tushirish endi imtiyozlarni oshirishga urinmaydi.
  • meson_options.txt oʻrniga meson.options faylidan oʻqish parametrlarini qoʻllab-quvvatlash qoʻshildi.
  • Introspeksiyaning borishi haqidagi ma'lumotlarni stderr ga yo'naltirish taqdim etiladi.
  • Faqat oʻrnatish qoidalari va qurish qoidalari yoʻq loyihalarni yaratish uchun yangi “none” backend (--backend=none) qoʻshildi.
  • Yangi bog'liqlik pybind11 qo'shildi, bu bog'liqlikka ('pybind11') pybind11-config skriptidan foydalanmasdan pkg-config va cmake bilan ishlash imkonini beradi.
  • "--reconfigure" va "--wipe" opsiyalariga ruxsat beriladi (meson setup --reconfigure builddir va meson setup --wipe builddir ) bo'sh builddir.
  • Meson.add_install_script() ga dry_run kalit soʻzini qoʻllab-quvvatlash qoʻshildi, bu “meson install --dry-run” deb chaqirilganda oʻz oʻrnatish skriptlarini ishga tushirish imkonini beradi.

Manba: opennet.ru

a Izoh qo'shish