Гоогле развија модуларни систем састављања Соонг за Андроид

Гоогле развија систем изградње Соонг, дизајниран да замени старе скрипте за прављење Андроид платформе, засноване на коришћењу услужног програма маке. Соонг предлаже коришћење једноставног декларативног описи правила за склапање модула, дато у датотекама са екстензијом „.бп“ (нацрти). Формат датотеке је близак ЈСОН-у и, ако је могуће, понавља синтаксу и семантику датотека склопа Базел. Код је написан у Го и дистрибуиран под лиценцом Апацхе 2.0.

Соонг буилд датотеке не подржавају условне изразе и изразе гранања, већ само описују структуру пројекта, модуле и зависности који се користе приликом изградње. Датотеке које треба изградити су описане помоћу маски и груписане у пакете, од којих је сваки скуп датотека са придруженим зависностима. Могуће је дефинисати променљиве. Променљиве и својства су стриктно типизовани (тип варијабли се бира динамички при првом додељивању, а за својства статички у зависности од типа модула). Сложени елементи асемблерске логике се премештају у руковаоце, писаним на језику Го.

Соонг се преплиће са већим пројектом Шематски план, у оквиру којег се развија мета-склопни систем који није везан за Андроид, који на основу фајлова са декларативним описима модула генерише асемблерске скрипте ниња (замена за маке), описујући команде које треба да се покрену да би се изградиле и зависности. Уместо да користи сложена правила или језик специфичан за домен за дефинисање логике изградње, Блуепринт користи руковаоце специфичне за пројекат у језику Го (Соонг је у суштини скуп сличних руковалаца за Андроид).

Овај приступ омогућава великим и хетерогеним пројектима, као што је Андроид, да имплементирају сложене елементе асемблерске логике у коду на програмском језику високог нивоа, уз задржавање могућности да се промене модули који се односе на организацију склопа и структуру пројекта користећи једноставну декларативно синтаксу . На пример, у Соонгу, избор заставица компајлера врши руковалац ллвм.го, а примену подешавања специфичних за хардверске архитектуре спроводи руковалац арт.го, али повезивање кодних датотека се врши у датотеци „.бп“.

цц_либрари {
...
срц: ["генериц.цпп"],
арцх: {
рука: {
срцс: ["арм.цпп"],
},
к86: {
срцс: ["к86.цпп"],
},
},
}

Извор: опеннет.ру

Додај коментар