Meson бүтээх системийн хувилбар 1.0

X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME, GTK зэрэг төслүүдийг бүтээхэд ашигладаг Meson 1.0.0 бүтээх систем гарсан. 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 1.0-ийн гол шинэчлэлүүд:

  • Rust хэл дээрх төсөл барих модулийг тогтвортой гэж зарлав. Энэ модулийг Mesa төсөлд Rust дээр бичигдсэн бүрэлдэхүүн хэсгүүдийг бүтээхэд ашигладаг.
  • Ихэнх хөрвүүлэгчийн шалгах функцүүдэд дэмжигддэг угтварын сонголт нь мөрүүдээс гадна массивуудыг зохицуулах боломжийг олгодог. Жишээлбэл, та одоо зааж өгч болно: cc.check_header(‘GL/wglew.h', угтвар : [‘#include ’, ‘#include ’])
  • Ажлын лавлахыг хүчингүй болгохын тулд "--workdir" шинэ аргумент нэмсэн. Жишээлбэл, ажлын лавлахын оронд одоогийн лавлахыг ашиглахын тулд та дараахийг ажиллуулж болно: meson devenv -C builddir --workdir .
  • Өмнө нь массив эсвэл толь бичигт элемент гарч байгааг шалгахтай адил мөрөнд дэд мөр үүсэхийг тодорхойлохын тулд "in" болон "in" биш" гэсэн шинэ операторуудыг санал болгосон. Жишээ нь: fs = import(‘fs’) хэрэв fs.read(‘somefile’) дотор ‘ямар нэг зүйл’ бол # True endif
  • "Анхааруулга-түвшин=бүх зүйл" сонголтыг нэмсэн бөгөөд энэ нь бүх хөрвүүлэгчийн сэрэмжлүүлгийн гаралтыг идэвхжүүлдэг (clang болон MSVC-д энэ нь -Weverything ба /Wall-ийг ашигладаг бөгөөд GCC-ийн анхааруулга нь -Weverything-д ойролцоогоор тусад нь багтсан болно. дуугарах горим).
  • Rust.bindgen арга нь хөрвүүлэгчийн боловсруулах ёстой хамаарал руу замыг дамжуулах "хамаарал" аргументыг зохицуулах чадварыг хэрэгжүүлдэг.
  • java.generate_native_headers функцийг хуучирсан бөгөөд Meson-ын нийтлэг функцын нэрлэлтийн хэв маягт нийцүүлэн java.native_headers гэж өөрчилсөн.

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

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