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

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

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

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

رئيسي الابتكارات ميزون 0.51:

  • تمت إضافة دعم للبناء الشفاف للمشاريع الحالية التي تستخدم البرامج النصية لبناء CMake. يمكن لـ Meson الآن إنشاء مشاريع فرعية بسيطة مباشرة (مثل المكتبات الفردية) باستخدام وحدة CMake، على غرار المشاريع الفرعية القياسية (بما في ذلك مشاريع CMake الفرعية التي يمكن وضعها في دليل المشاريع الفرعية)؛
  • بالنسبة لجميع المترجمين المستخدمين، يتم تضمين الاختبار الأولي من خلال تجميع وتنفيذ ملفات الاختبار البسيطة (فحص السلامة)، ولا يقتصر على اختبار العلامات المحددة من قبل المستخدم للمترجمين المتقاطعين (من الآن فصاعدًا، يتم أيضًا فحص المترجمين الأصليين للنظام الأساسي الحالي). .
  • تمت إضافة القدرة على تحديد خيارات سطر الأوامر المستخدمة أثناء التجميع المتبادل، مع الربط عن طريق تحديد بادئة النظام الأساسي قبل الخيار. في السابق، كانت خيارات سطر الأوامر تغطي الإصدارات الأصلية فقط ولم يكن من الممكن تحديدها للتجميع المشترك. يتم الآن تطبيق خيارات سطر الأوامر بغض النظر عما إذا كنت تقوم بالإنشاء محليًا أو التحويل البرمجي المشترك، مما يضمن أن الإصدارات الأصلية والمشتركة تنتج نتائج متطابقة؛
  • تمت إضافة القدرة على تحديد علامة "--cross-file" أكثر من مرة في سطر الأوامر لسرد عدة ملفات متقاطعة؛
  • تمت إضافة دعم لمترجم ICL (مترجم Intel C/C++) لنظام التشغيل Windows (ICL.EXE وifort)؛
  • تمت إضافة دعم أولي لمجموعة الأدوات لوحدات المعالجة المركزية Xtensa (xt-xcc، xt-xc++، xt-nm)؛
  • تمت إضافة طريقة "get_variable" إلى كائن "التبعية"، والذي يسمح لك بالحصول على قيمة المتغير دون مراعاة نوع التبعية الحالية (على سبيل المثال، dep.get_variable(pkg-config : 'var- name'، cmake : 'COP_VAR_NAME));
  • تمت إضافة وسيطة جديدة لخيارات التجميع الهدف، "link_language"، لتحديد اللغة المستخدمة بشكل واضح عند استدعاء الرابط. على سبيل المثال، يمكن لبرنامج Fortran الرئيسي استدعاء رمز C/C++، والذي سيحدد C/C++ تلقائيًا عند استخدام رابط Fortran؛
  • تم تغيير طريقة التعامل مع إشارات المعالج المسبق CPPFLAGS. في حين قام Meson سابقًا بتخزين CPPFLAGS وعلامات التجميع الخاصة باللغة (CFLAGS، CXXFLAGS) بشكل منفصل، تتم معالجتها الآن بشكل غير منفصل ويتم استخدام العلامات المدرجة في CPPFLAGS كمصدر آخر لأعلام التجميع للغات التي تدعمها؛
  • يمكن الآن استخدام مخرجات custom_target وcustom_target[i] كوسائط في عمليات link_with وlink_whole؛
  • تتمتع المولدات الآن بالقدرة على تحديد تبعيات إضافية باستخدام خيار "يعتمد" (على سبيل المثال، generator(program_runner,put: ['@)[البريد الإلكتروني محمي]']، يعتمد: إكس))؛
  • تمت إضافة خيار ثابت إلى find_library للسماح للبحث بتضمين المكتبات المرتبطة بشكل ثابت فقط؛
  • بالنسبة إلى python.find_installation، تمت إضافة القدرة على تحديد وجود وحدة Python معينة لإصدار محدد من Python؛
  • تمت إضافة وحدة نمطية جديدة unstable-kconfig لتحليل ملفات kconfig؛
  • تمت إضافة أمر جديد "المشاريع الفرعية foreach"، والذي يأخذ الأمر مع الوسائط ويقوم بتشغيله في جميع دلائل المشاريع الفرعية؛

المصدر: opennet.ru

إضافة تعليق