إصدار نظام بناء ميزون 1.0

تم نشر إصدار نظام البناء Meson 1.0.0 ، والذي يستخدم لبناء مشاريع مثل 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 لإنشاء بنيات قابلة للتكرار ، حيث يؤدي تشغيل الإنشاء في بيئات مختلفة إلى إنشاء ملفات تنفيذية متطابقة تمامًا.

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

  • تم الإعلان عن وحدة بناء المشاريع بلغة Rust مستقرة. تُستخدم هذه الوحدة في مشروع Mesa لبناء مكونات مكتوبة بلغة Rust.
  • بدعم من معظم وظائف فحص المترجم ، يطبق خيار البادئة القدرة على التعامل مع المصفوفات بخلاف السلاسل النصية. على سبيل المثال ، يمكنك الآن تحديد: cc.check_header ('GL / wglew.h' ، بادئة: ['#include '، '#يشمل '])
  • تمت إضافة وسيطة "--workdir" جديدة للسماح لك بتجاوز دليل العمل. على سبيل المثال ، لاستخدام الدليل الحالي بدلاً من دليل العمل ، يمكنك تشغيل: meson devenv -C builddir --workdir.
  • تم اقتراح عوامل تشغيل جديدة "في" و "ليس في" لتحديد حدوث سلسلة فرعية في سلسلة ، على غرار التحقق المتوفر سابقًا لحدوث عنصر في مصفوفة أو قاموس. على سبيل المثال: fs = import ('fs') إذا كان 'شيء' في fs.read ('somefile') # صحيح endif
  • تمت إضافة خيار "warning-level = كل شيء" لتشغيل مخرجات جميع تحذيرات المترجم المتاحة (في clang و MSVC الاستخدامات -Weverything و / Wall ، وفي GCC ، يتم تضمين تحذيرات منفصلة ، تتوافق تقريبًا مع وضع -Weverything في clang).
  • يطبق أسلوب rust.bindgen القدرة على معالجة وسيطة "التبعيات" لتمرير المسارات إلى التبعيات التي يجب معالجتها بواسطة المترجم.
  • تم إهمال وظيفة java.generate_native_headers وأعيد تسميتها إلى java.native_headers لتتناسب مع أسلوب تسمية الوظيفة العامة لـ Meson.

المصدر: opennet.ru

إضافة تعليق