Meson 0.58 угсралтын системийг гаргах. Си хэл дээр Meson-ийн хэрэгжилтийг бий болгох төсөл

X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME, GTK зэрэг төслүүдийг бүтээхэд ашигладаг Meson 0.58 бүтээх систем гарсан. Meson-ийн код нь Python дээр бичигдсэн бөгөөд Apache 2.0 лицензийн дагуу лицензтэй.

Месон хөгжүүлэлтийн гол зорилго нь угсралтын үйл явцын өндөр хурдыг тав тухтай, ашиглахад хялбар болгох явдал юм. Барилга хийх үед make utility-ийн оронд Ninja toolkit-ийг анхдагч байдлаар ашигладаг боловч xcode, VisualStudio зэрэг бусад арын хэсгийг бас ашиглаж болно. Энэхүү систем нь олон платформын хамаарлыг зохицуулагчтай бөгөөд Meson-ыг ашиглан түгээлтийн багцуудыг бүтээх боломжийг олгодог. Ассемблей дүрмүүд нь хялбаршуулсан домэйны хэлээр тодорхойлогддог бөгөөд хэрэглэгчдэд маш их уншигдахуйц, ойлгомжтой байдаг (зохиогчийн санаачилгаар хөгжүүлэгч нь дүрэм бичихэд хамгийн бага цаг зарцуулах ёстой).

GCC, Clang, Visual Studio болон бусад хөрвүүлэгчийг ашиглан Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS болон Windows дээр хөндлөн эмхэтгэл болон бүтээхийг дэмждэг. C, C++, Fortran, Java, Rust гэх мэт янз бүрийн програмчлалын хэлээр төсөл бүтээх боломжтой. Зөвхөн сүүлийн бүтээцээс хойш хийсэн өөрчлөлттэй шууд холбоотой бүрэлдэхүүн хэсгүүдийг дахин бүтээдэг нэмэлт бүтээх горимыг дэмждэг. Месоныг давтагдах бүтээцийг үүсгэхэд ашиглаж болох бөгөөд уг бүтцийг өөр өөр орчинд ажиллуулах нь бүрэн ижил гүйцэтгэх боломжтой файлуудыг үүсгэхэд хүргэдэг.

Meson 0.58-ийн гол шинэчлэлүүд:

  • Месон нь мөр форматлах үйлдлүүдтэй. Форматын аргыг дуудахын оронд та утгуудыг шууд орлуулах боломжтой, жишээлбэл, "'A string @0@ to be formatted @1@'.format(n, m)"-ын оронд та нэн даруй "f'-г зааж өгч болно. @ m@' форматлах @n@ тэмдэгт мөр.
  • Нэг дэд мөрийг нөгөө мөрөөр солих үйлдлийг гүйцэтгэхийн тулд "орлуулах" аргыг мөрийн объектуудад нэмсэн, жишээ нь "s = s.replace('aaa', 'bbb')."
  • "foreach i : range(15)" гэх мэт foreach гогцоонд ашиглагдах объектыг буцаахын тулд "range(star, stop[, step])" функцийг нэмсэн.
  • meson.add_devenv() аргыг хэрэгжүүлсэн бөгөөд энэ нь "meson devenv" командыг ашиглах үед орчны хувьсагчдыг тохируулах, жишээлбэл, залгаасуудын лавлах замтай орчны хувьсагчийг тохируулахын тулд орчин () объектыг нэмэх боломжийг олгодог.
  • Хөгжүүлэх орчны хувьд шинэ командыг санал болгосон: “meson devenv -C builddir [], энэ нь бүтээх лавлахаас (суулгахгүйгээр) төслүүдийг эхлүүлэхээр тохируулсан орчинд тушаалыг ажиллуулах боломжтой болгодог.
  • Анхдагч байдлаар, бүх дэмжигдсэн хөрвүүлэгчийг ажиллуулах үед "-pipe" сонголтыг дамжуулахыг зогсооно.
  • Дэд төслөөс meson.add_dist_script() руу залгахыг зөвшөөрнө.
  • Нэг орчин() объект дээр append() болон prepend() аргуудыг олон удаа ажиллуулах боломжийг олгосон.
  • error() функц нь зайгаар тусгаарлагдсан нэгээс олон аргументыг зөвшөөрдөг (анхааруулах() болон мессеж()-тэй төстэй).
  • Дэд төслүүдийн суулгацыг сонгон алгасахын тулд "--skip-subprojects" сонголтыг нэмсэн.

Python-ийн оронд C хэл дээр бичигдсэн Meson ассемблер скрипт хэлний зөөврийн, энгийн хэрэгжилтийг бий болгоход чиглэсэн Boson төслийг тус тусад нь тэмдэглэж болно. Төсөл нь хөгжлийн эхний шатанд байгаа бөгөөд ажлын төслүүдийг бүрэн угсрахад хараахан бэлэн болоогүй байна. Код нь GPLv3-ийн дагуу лицензтэй (анхны Python Meson нь Apache 2.0 лицензийн дагуу лицензлэгдсэн).

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх