Meson qurish tizimining 0.51 versiyasi

nashr etilgan tizim versiyasini yaratish Mezon 0.51, 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).

GCC, Clang, Visual Studio va boshqa kompilyatorlar yordamida Linux, macOS va Windows tizimlarida oʻzaro kompilyatsiya va qurish qoʻllab-quvvatlanadi. 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.51:

  • CMake qurish skriptlaridan foydalanadigan mavjud loyihalarni shaffof yaratish uchun qo'shimcha yordam. Meson endi standart kichik loyihalarga o'xshash CMake modulidan foydalangan holda to'g'ridan-to'g'ri oddiy kichik loyihalarni (masalan, bitta kutubxonalar) qurishi mumkin (jumladan, CMake subloyihalari subloyihalar katalogiga joylashtirilishi mumkin);
  • Barcha foydalanilgan kompilyatorlar uchun dastlabki sinov oddiy test fayllarini yig'ish va bajarish orqali (sog'lomlikni tekshirish) kiritilgan bo'lib, u faqat o'zaro kompilyatorlar uchun foydalanuvchi tomonidan belgilangan bayroqlarni sinovdan o'tkazish bilan cheklanmaydi (bundan buyon joriy platformaga tegishli kompilyatorlar ham tekshiriladi). .
  • Variant oldidan platforma prefiksini ko'rsatish orqali bog'lash bilan o'zaro kompilyatsiya paytida ishlatiladigan buyruq qatori parametrlarini aniqlash imkoniyati qo'shildi. Ilgari buyruq qatori opsiyalari faqat mahalliy tuzilmalarni qamrab olgan va oʻzaro kompilyatsiya uchun belgilab boʻlmasdi. Buyruqlar qatori opsiyalari endi mahalliy yoki oʻzaro kompilyatsiya qilishdan qatʼiy nazar qoʻllaniladi, bu mahalliy va oʻzaro tuzilmalar bir xil natijalar berishiga ishonch hosil qiladi;
  • Bir nechta o'zaro faoliyat fayllarni ro'yxatga olish uchun buyruq satrida "--cross-file" bayrog'ini bir necha marta belgilash imkoniyati qo'shildi;
  • Windows platformasi (ICL.EXE va ifort) uchun ICL kompilyatori (Intel C/C++ Compiler) uchun qo'shimcha yordam;
  • Xtensa protsessorlari uchun dastlabki asboblar to'plami qo'shildi (xt-xcc, xt-xc++, xt-nm);
  • “Tobelik” obyektiga “get_variable” usuli qo‘shildi, bu esa joriy bog‘liqlik turini hisobga olmasdan o‘zgaruvchining qiymatini olish imkonini beradi (masalan, dep.get_variable(pkg-config : 'var-) nom', cmake : 'COP_VAR_NAME));
  • Bog'lovchini chaqirishda foydalaniladigan tilni aniq belgilash uchun yangi maqsadli yig'ish parametrlari argumenti qo'shildi, "link_language". Masalan, asosiy Fortran dasturi C/C++ kodini chaqirishi mumkin, bu esa Fortran bog'lovchisidan foydalanish kerak bo'lganda avtomatik ravishda C/C++ ni tanlaydi;
  • CPPFLAGS preprotsessor bayroqlari bilan ishlash o'zgartirildi. Meson ilgari CPPFLAGS va tilga xos kompilyatsiya bayroqlarini (CFLAGS, CXXFLAGS) alohida saqlagan bo'lsa, endi ular ajralmas tarzda qayta ishlanadi va CPPFLAGS ro'yxatidagi bayroqlar ularni qo'llab-quvvatlaydigan tillar uchun kompilyatsiya bayroqlarining boshqa manbai sifatida ishlatiladi;
  • custom_target va custom_target[i] natijalari endi link_with va link_whole operatsiyalarida argument sifatida ishlatilishi mumkin;
  • Generatorlar endi “depends” opsiyasi yordamida qo‘shimcha bog‘liqliklarni belgilash imkoniyatiga ega (masalan, generator(program_runner, chiqish: ['@)[elektron pochta bilan himoyalangan]'], bog'liq: exe)))
  • Qidiruvga faqat statik bogʻlangan kutubxonalarni oʻz ichiga olishiga ruxsat berish uchun find_library ga statik variant qoʻshildi;
  • python.find_installation uchun Pythonning ma'lum bir versiyasi uchun berilgan Python moduli mavjudligini aniqlash imkoniyati qo'shildi;
  • kconfig fayllarini tahlil qilish uchun unstable-kconfig yangi moduli qo'shildi;
  • Argumentlar bilan buyruqni qabul qiladigan va uni barcha kichik loyiha kataloglarida ishga tushiradigan yangi “subprojects foreach” buyrug'i qo'shildi;

Manba: opennet.ru

a Izoh qo'shish