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

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

  • declare_dependency()-д шинэ "objects:" аргумент нэмэгдсэн бөгөөд энэ нь холбоос_who-г ашиглах шаардлагагүй дотоод хамаарлын хэлбэрээр гүйцэтгэгдэх файлд объектуудыг шууд хавсаргасан.
  • "meson devenv -dump" команд нь стандарт гаралт руу хэвлэхийн оронд орчны хувьсагчдыг бичих файлыг зааж өгөх боломжтой болсон.
  • Dependency() функцэд параметр дамжуулах бэлтгэлийн хүрээнд нөхцөл үүсгэхэд хялбар болгохын тулд FeatureOption.enable_if болон FeatureOption.disable_if аргуудыг нэмсэн. opt = get_option('feature').disable_if(foo биш, error_message: 'Foo мөн идэвхжээгүй үед функцийг идэвхжүүлж чадахгүй') dep = dependency('foo', шаардлагатай : opt)
  • Үүсгэсэн объектуудыг аргумент болгон "объект:" руу шилжүүлэхийг зөвшөөрнө.
  • Төслийн функц нь одоо төслийн лицензийн талаарх мэдээлэл бүхий файлуудыг суулгахыг дэмждэг.
  • "Sudo meson install"-ыг ажиллуулснаар зорилтот платформуудыг дахин бүтээх явцад эрхүүдийг дахин тохируулах боломжтой.
  • "Meson install" команд нь үндсэн эрхийг олж авах тусдаа зохицуулагчийг зааж өгөх боломжийг олгодог (жишээлбэл, та polkit, sudo, opendoas эсвэл $MESON_ROOT_CMD сонгож болно). Интерактив бус горимд "meson install"-г ажиллуулах нь давуу эрхийг нэмэгдүүлэх оролдлого хийхээ больсон.
  • meson_options.txt-ийн оронд meson.options файлаас сонголтуудыг уншихад дэмжлэг нэмсэн.
  • Дотроо шалгах явцын талаарх мэдээллийг stderr руу дахин чиглүүлэв.
  • Зөвхөн суулгах дүрэмтэй, бүтээх дүрэмгүй төслүүдийг үүсгэхийн тулд шинэ "none" backend (--backend=none) нэмсэн.
  • Шинэ хамаарлыг pybind11 нэмснээр dependency('pybind11') нь pybind11-config скрипт ашиглахгүйгээр pkg-config болон cmake-тэй ажиллах боломжийг олгосон.
  • "--reconfigure" болон "--wipe" гэсэн сонголтуудыг (meson setup --reconfigure builddir болон meson setup --wipe builddir ) хоосон builddir-ээр зөвшөөрдөг.
  • meson.add_install_script()-д dry_run түлхүүр үгийн дэмжлэгийг нэмсэн бөгөөд "meson install --dry-run" гэж дуудах үед өөрийн суулгалтын скриптүүдийг ажиллуулах боломжтой болсон.

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

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