Google Android uchun Soong modulli yig'ish tizimini ishlab chiqadi

Google qurilish tizimini ishlab chiqmoqda Tez orada, make yordam dasturidan foydalanish asosida Android platformasi uchun eski qurish skriptlarini almashtirish uchun moʻljallangan. Soong oddiy deklarativdan foydalanishni taklif qiladi tavsiflar modullarni yig'ish qoidalari, berilgan “.bp” kengaytmali fayllarda (loyihalar). Fayl formati JSON ga yaqin va iloji bo'lsa, montaj fayllari sintaksisi va semantikasini takrorlaydi. bazel. Kod Go-da yozilgan va Apache 2.0 litsenziyasi ostida tarqatiladi.

Tez orada qurish fayllari shartli bayonotlar va tarmoqlanuvchi ifodalarni qo'llab-quvvatlamaydi, faqat loyiha tuzilishini, qurishda foydalaniladigan modullarni va bog'liqliklarni tavsiflaydi. Qurilishi kerak bo'lgan fayllar niqoblar yordamida tavsiflanadi va paketlarga guruhlanadi, ularning har biri bog'liqliklari bo'lgan fayllar to'plamidir. O'zgaruvchilarni aniqlash mumkin. O'zgaruvchilar va xususiyatlar qat'iy ravishda yoziladi (o'zgaruvchilar turi birinchi tayinlanganda dinamik ravishda, modul turiga qarab xususiyatlar uchun statik ravishda tanlanadi). Yig'ish mantiqining murakkab elementlari ishlov beruvchilarga o'tkaziladi, yozilgan Go tilida.

Tez orada kattaroq loyiha bilan bog'lanadi loyiha, uning ichida Android-ga bog'lanmagan meta-assembly tizimi ishlab chiqilmoqda, u deklarativ modul tavsifiga ega fayllarga asoslangan holda montaj skriptlarini yaratadi. Ninja (make uchun almashtirish), qurish uchun bajarilishi kerak bo'lgan buyruqlar va bog'liqliklarni tavsiflaydi. Qurilish mantig'ini aniqlash uchun murakkab qoidalar yoki domenga xos tildan foydalanish o'rniga, Blueprint Go tilida loyihaga xos ishlov beruvchilardan foydalanadi (Soong aslida Android uchun o'xshash ishlovchilar to'plamidir).

Ushbu yondashuv Android kabi yirik va heterojen loyihalarga montaj mantig'ining murakkab elementlarini kodda yuqori darajadagi dasturlash tilida amalga oshirish imkonini beradi, shu bilan birga oddiy deklarativ sintaksis yordamida montajni tashkil etish va loyiha tuzilishi bilan bog'liq modullarga o'zgartirishlar kiritish imkoniyatini saqlab qoladi. . Masalan, Soongda kompilyator bayroqlarini tanlash ishlov beruvchi tomonidan amalga oshiriladi llvm.go, va apparat arxitekturalariga xos sozlamalarni qo'llash ishlov beruvchi tomonidan amalga oshiriladi art.go, lekin kod fayllarini bog'lash ".bp" faylida amalga oshiriladi.

cc_library {
...
srcs: ["generic.cpp"],
arch: {
qo'l: {
srcs: ["arm.cpp"],
},
x86: {
srcs: ["x86.cpp"],
},
},
}

Manba: opennet.ru

a Izoh qo'shish