Google развива Soong модуларен систем за склопување за Android

Google развива систем за градење Сонг, дизајниран да ги замени старите скрипти за градба за платформата Android, врз основа на употребата на алатката make. Soong предлага користење на едноставни декларативни описи правила за склопување модули, дадена во датотеки со наставка „.bp“ (плани). Форматот на датотеката е близок до JSON и, ако е можно, ја повторува синтаксата и семантиката на склопните датотеки Базел. Кодот е напишан во Go и се дистрибуира под лиценцата Apache 2.0.

Soong build-датотеките не поддржуваат условни изјави и изрази за разгранување, туку само ја опишуваат структурата на проектот, модулите и зависностите што се користат при градењето. Датотеките што треба да се градат се опишани со помош на маски и групирани во пакети, од кои секоја е збирка на датотеки со поврзани зависности. Можно е да се дефинираат променливи. Променливите и својствата се строго напишани (типот на променливите се избира динамички при првото доделување, а за својствата статички во зависност од типот на модулот). Комплексните елементи на логиката на склопување се преместуваат во ракувачи, напишано на јазик Go.

Сонг се испреплетува со поголем проект Планот, во рамките на кој се развива мета-склопен систем кој не е поврзан со Android, кој, врз основа на датотеки со декларативни описи на модулите, генерира скрипти за склопување Нинџа (замена за make), опишувајќи ги командите што треба да се извршат за да се изгради и зависностите. Наместо да користи сложени правила или јазик специфичен за домен за да ја дефинира логиката на изградбата, Blueprint користи ракувачи специфични за проектот во јазикот Go (Soong во суштина е збир на слични ракувачи за Android).

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

cc_библиотека {
...
srcs: ["generic.cpp"],
лак: {
рака: {
srcs: ["arm.cpp"],
},
x86: {
srcs: ["x86.cpp"],
},
},
}

Извор: opennet.ru

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