تعمل Google على تطوير نظام التجميع المعياري Soong لنظام Android

تعمل Google على تطوير نظام بناء سونغ، تم تصميمه ليحل محل نصوص البناء القديمة لمنصة Android، بناءً على استخدام الأداة المساعدة make. يقترح Soong استخدام التصريح البسيط وصف قواعد تجميع الوحدات، منح في الملفات ذات الامتداد ".bp" (المخططات). تنسيق الملف قريب من JSON، ويكرر، إن أمكن، بناء الجملة ودلالات ملفات التجميع بازل. الكود مكتوب بلغة Go ويتم توزيعه بموجب ترخيص Apache 2.0.

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

يتشابك Soong مع مشروع أكبر مخطط، حيث يتم تطوير نظام تجميع تعريفي غير مرتبط بنظام Android، والذي يقوم، بناءً على ملفات ذات أوصاف وحدة تعريفية، بإنشاء برامج نصية للتجميع النينجا (بديل لـ make)، واصفًا الأوامر التي يجب تشغيلها للإنشاء والتبعيات. بدلاً من استخدام قواعد معقدة أو لغة خاصة بالمجال لتحديد منطق البناء، يستخدم Blueprint معالجات خاصة بالمشروع في لغة Go (Soong هي في الأساس مجموعة من المعالجات المماثلة لنظام Android).

يسمح هذا النهج للمشاريع الكبيرة وغير المتجانسة، مثل Android، بتنفيذ عناصر معقدة من منطق التجميع في التعليمات البرمجية بلغة برمجة عالية المستوى، مع الحفاظ على القدرة على إجراء تغييرات على الوحدات النمطية المتعلقة بتنظيم التجميع وبنية المشروع باستخدام بناء جملة تعريفي بسيط . على سبيل المثال، في Soong، يتم تحديد علامات المترجم بواسطة المعالج llvm.go، ويتم تنفيذ الإعدادات الخاصة ببنيات الأجهزة بواسطة المعالج art.goولكن يتم ربط ملفات التعليمات البرمجية في ملف ".bp".

مكتبة سي سي {
...
srcs: ["generic.cpp"]،
القوس: {
ذراع: {
srcs: ["arm.cpp"]،
},
x86: {
srcs: ["x86.cpp"]،
},
},
}

المصدر: opennet.ru

إضافة تعليق