إطلاق نظام التجميع Meson 0.58. مشروع لإنشاء تطبيق Meson في لغة C

تم نشر إصدار نظام البناء Meson 0.58 ، والذي يستخدم لبناء مشاريع مثل X.Org Server و Mesa و Lighttpd و systemd و GStreamer و Wayland و GNOME و GTK. تمت كتابة رمز Meson بلغة Python ومرخصًا بموجب ترخيص Apache 2.0.

يتمثل هدف التطوير الرئيسي لشركة Meson في توفير عملية تجميع عالية السرعة مقترنة بالراحة وسهولة الاستخدام. بدلاً من الإنشاء ، يستخدم الإصدار مجموعة أدوات Ninja افتراضيًا ، ولكن يمكن أيضًا استخدام الخلفيات الأخرى مثل xcode و VisualStudio. يحتوي النظام على معالج تبعية متعدد الأنظمة الأساسية يسمح لك باستخدام Meson لإنشاء حزم للتوزيعات. يتم تعيين قواعد التجميع بلغة مبسطة خاصة بالمجال ، وهي سهلة القراءة ومفهومة للمستخدم (وفقًا لفكرة المؤلفين ، يجب على المطور قضاء حد أدنى من الوقت في كتابة القواعد).

يتم دعم التجميع المتقاطع والبناء على Linux و Illumos / Solaris و FreeBSD و NetBSD و DragonFly BSD و Haiku و macOS و Windows باستخدام GCC و Clang و Visual Studio والمجمعين الآخرين. من الممكن بناء مشاريع بلغات برمجة مختلفة ، بما في ذلك C و C ++ و Fortran و Java و Rust. يتم دعم وضع البناء التزايدي ، حيث يتم إعادة بناء المكونات التي ترتبط ارتباطًا مباشرًا بالتغييرات التي تم إجراؤها منذ الإصدار الأخير فقط. يمكن استخدام Meson لإنشاء بنيات قابلة للتكرار ، حيث يؤدي تشغيل الإنشاء في بيئات مختلفة إلى إنشاء ملفات تنفيذية متطابقة تمامًا.

أهم ابتكارات ميزون 0.58:

  • يحتوي Meson على عمليات تنسيق سلسلة مضمنة. بدلاً من استدعاء أسلوب التنسيق، يمكنك الآن استبدال القيم مباشرةً، على سبيل المثال، بدلاً من ""سلسلة @0@ سيتم تنسيقها @1@'.format(n, m)" يمكنك تحديد "f" على الفور سلسلة @n@ سيتم تنسيقها @ m@'".
  • تمت إضافة طريقة "استبدال" إلى كائنات السلسلة لإجراء عملية استبدال سلسلة فرعية بأخرى، على سبيل المثال، "s = s.replace('aaa', 'bbb')."
  • تمت إضافة وظيفة "range(start, stop[, step])" لإرجاع كائن يمكن استخدامه في حلقة foreach، مثل "foreach i: range(15)".
  • تم تنفيذ طريقة meson.add_devenv()، مما يسمح لك بإضافة كائن بيئة() لتعيين متغيرات البيئة عند استخدام الأمر "meson devenv"، على سبيل المثال، لتعيين متغير بيئة مع المسار إلى دليل المكونات الإضافية.
  • بالنسبة لبيئات التطوير، تم اقتراح أمر جديد: "meson devenv -C builddir []، مما يجعل من الممكن تشغيل الأمر في بيئة تم تكوينها لبدء المشاريع من دليل البناء (بدون تثبيت).
  • افتراضيًا، يتم إيقاف تمرير خيار "-pipe" عند تشغيل جميع المترجمين المعتمدين.
  • يُسمح باستدعاء meson.add_dist_script() من المشاريع الفرعية.
  • توفير القدرة على تشغيل أساليب الإلحاق () والإلحاق () عدة مرات على نفس كائن البيئة ().
  • تسمح الدالة error() بأكثر من وسيطة واحدة، مفصولة بمسافة (على غرار تحذير() و message()).
  • تمت إضافة خيار "--skip-subprojects" لتخطي تثبيت المشاريع الفرعية بشكل انتقائي.

بشكل منفصل، يمكننا أن نلاحظ مشروع Boson، الذي يهدف إلى إنشاء تطبيق محمول وبسيط للغة البرنامج النصي لتجميع Meson، مكتوبًا بلغة C بدلاً من Python. لا يزال المشروع في المرحلة الأولية من التطوير وليس جاهزًا بعد للتجميع الكامل لمشاريع العمل. الكود مرخص بموجب GPLv3 (تم ترخيص Python Meson الأصلي بموجب ترخيص Apache 2.0).

المصدر: opennet.ru

إضافة تعليق