گوگل در حال توسعه یک سیستم ساخت است
فایلهای ساخت Soong از عبارات شرطی و عبارات انشعاب پشتیبانی نمیکنند، بلکه فقط ساختار پروژه، ماژولها و وابستگیهای مورد استفاده در هنگام ساخت را توصیف میکنند. فایل هایی که قرار است ساخته شوند با استفاده از ماسک ها توصیف شده و در بسته هایی گروه بندی می شوند که هر کدام مجموعه ای از فایل ها با وابستگی های مرتبط هستند. امکان تعریف متغیرها وجود دارد. متغیرها و خصوصیات به طور دقیق تایپ می شوند (نوع متغیرها در اولین انتساب به صورت پویا و بسته به نوع ماژول برای ویژگی ها به صورت ایستا انتخاب می شود). عناصر پیچیده منطق اسمبلی به هندلرها منتقل می شوند،
Soong با یک پروژه بزرگتر در هم تنیده است
این رویکرد به پروژههای بزرگ و ناهمگن مانند اندروید اجازه میدهد تا عناصر پیچیده منطق اسمبلی را در کد در یک زبان برنامهنویسی سطح بالا پیادهسازی کنند، در حالی که توانایی ایجاد تغییرات در ماژولهای مربوط به سازمان اسمبلی و ساختار پروژه را با استفاده از نحو ساده اعلامی حفظ میکند. . برای مثال در Soong انتخاب پرچم های کامپایلر توسط handler انجام می شود
cc_library {
...
srcs: ["generic.cpp"]،
قوس: {
بازو: {
srcs: ["arm.cpp"]،
},
x86:{
srcs: ["x86.cpp"]،
},
},
}
منبع: opennet.ru