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

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

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

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

Үндсэн инноваци Мезон 0.52:

  • Emscripten-ийг хөрвүүлэгч болгон ашиглан Webassembly-д туршилтын дэмжлэг нэмсэн;
  • Illumos болон Solaris платформуудын дэмжлэгийг мэдэгдэхүйц сайжруулж, ажиллах нөхцөлтэй болгосон;
  • Хэрэв системд gettext хэрэглүүрийг суулгаагүй бол gettext-д суурилсан олон улсын скриптүүдийг үл тоомсорлодог (өмнө нь gettext-гүй систем дээр i18n модулийг ашиглах үед алдаа гарч байсан);
  • Статик номын сангуудад зориулсан сайжруулсан дэмжлэг. Устгасан статик номын санг ашиглахад гарсан олон асуудал шийдэгдсэн;
  • Орчны хувьсагчдыг хуваарилахын тулд толь бичгүүдийг ашиглах чадварыг нэмсэн. орчин()-г дуудах үед эхний элементийг орчин үеийн хувьсагчдыг түлхүүр/утга хэлбэрээр тодорхойлсон толь бичиг болгон зааж өгч болно. Эдгээр хувьсагчийг set() аргаар тус тусад нь тохируулсан мэт орчин_объект руу шилжүүлэх болно. Мөн толь бичгүүдийг "env" аргументыг дэмждэг янз бүрийн функцууд руу шилжүүлж болно;
  • Сонгосон бүтээх арын хэсэгт (жишээ нь "нинжа зорилтын_нэр") дуудаж болох шинэ нэгдүгээр түвшний бүтээх зорилтыг бий болгодог "runtarget alias_target(target_name, dep1, ...)" функцийг нэмсэн. Энэ бүтээх зорилт нь ямар ч тушаалыг ажиллуулдаггүй, гэхдээ бүх хамаарлыг бий болгодог;
  • Хэрэв “[properties]” хэсэгт sys_root тохиргоо байгаа бол хөндлөн эмхэтгэлийн үед PKG_CONFIG_SYSROOT_DIR орчны хувьсагчийн автомат тохиргоог идэвхжүүлсэн;
  • GDB-г заасан тестийн скриптээр ажиллуулахын тулд "--gdb testname" сонголтыг зааж өгөх үед GDB дибаг хийгчийн замыг тодорхойлох "--gdb-path" сонголтыг нэмсэн;
  • Энэ линтерийг бүх эх файлтай ажиллуулахын тулд дуу чимээтэй бүтээх зорилтот автомат илрүүлэлтийг нэмсэн. Хэрэв системд clang-tidy байгаа бөгөөд төслийн үндэс хэсэгт ".clang-tidy" (эсвэл "_clang-tidy") файлыг тодорхойлсон бол зорилтыг үүсгэнэ;
  • Clang өргөтгөлд ашиглах хамаарлыг('блокууд') нэмсэн Блок;
  • Холбогч болон хөрвүүлэгчийн харагдац нь тусгаарлагдсан бөгөөд хөрвүүлэгч болон холбогчийн өөр өөр хослолыг ашиглах боломжийг олгодог;
  • all_sources() аргаас гадна SourceSet объектуудад all_dependencies() аргыг нэмсэн;
  • run_project_tests.py дээр "--only" сонголтыг сонгон ажиллуулах тестүүдийг нэмсэн (жишээлбэл, "python run_project_tests.py — зөвхөн fortran python3");
  • find_program() функц нь одоо зөвхөн програмын шаардлагатай хувилбаруудыг хайх боломжтой болсон (хувилбарыг “-version” сонголтоор програмыг ажиллуулснаар тодорхойлно);
  • Тэмдэгтүүдийн экспортыг хянахын тулд shared_library()-тай төстэй share_module() функцэд vs_module_defs сонголтыг нэмсэн.
  • kconfig модулийг оролтын файлыг зааж өгөх configure_file()-г дэмжих зорилгоор өргөтгөсөн;
  • configure_file()-д “command:” зохицуулагчийн олон оролтын файлыг зааж өгөх боломжийг нэмсэн;
  • Архив үүсгэх “dist” командыг нэгдүгээр түвшний командын ангилалд шилжүүлсэн (өмнө нь нинжа нартай холбоотой байсан). Үүсгэх архивын төрлийг тодорхойлох "--formats" сонголтыг нэмсэн (жишээлбэл,
    "meson dist -formats=xztar,zip").

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

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