+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новини

Google розвиває збірну систему Soong замість старих сценаріїв складання платформи Android, заснованих на використанні утиліти make

Google розвиває збірну систему Soong замість старих сценаріїв складання платформи Android, заснованих на використанні утиліти make

Google розвиває збірну систему Soong, покликану замінити собою старі сценарії складання платформи Android, засновані на використанні утиліти make. Soong пропонує використовувати прості декларативні описи правил зборки модулів, що задаються у файлах з розширенням ". bp" (blueprints). Формат файлів близький до JSON і по можливості повторює синтаксис та семантику складальних файлів Bazel. Код написаний мовою Go та поширюється під ліцензією Apache 2.0.

Складальні файли Soong не підтримують умовних операторів та виразів для розгалуження, а лише описують структуру проекту, що застосовуються при складанні модулів та залежності. Файли, що підлягають складання, описуються за допомогою масок і групуються в пакети, кожен з який являє собою колекцію файлів із зазначенням пов'язаних із ними залежностей. Можливе визначення змінних. Змінні та властивості строго типізовані (тип змінних вибирається динамічно при першому присвоєнні, а для властивостей статично залежно від типу модуля). Складні елементи складальної логіки винесені в обробники, написані мовою Go.

Soong переплітається з більш загальним проектом Blueprint, в рамках якого розвивається не прив'язана до Android мета-система складання, яка на основі файлів з декларативними описами модулів, формує складальні сценарії Ninja (заміна make), що описують команди, які необхідно виконати для складання , та залежності. Замість застосування складних правил або предметно орієнтованої мови для визначення логіки складання, в Blueprint застосовуються специфічні для проектів, що збираються обробники мовою Go (Soong є насправді набором подібних обробників для Android).

Подібний підхід дозволяє для великих та різнорідних проектів, таких як Android, реалізувати складні елементи складальної логіки в коді високорівневою мовою програмування, при цьому зберігаючи можливість за допомогою простого декларативного синтаксису вносити до модулів зміни, пов'язані з організацією складання та структурою проекту. Наприклад, у Soong вибір прапорів компілятора проводиться обробником lvm.go, а застосування специфічних для апаратних архітектур налаштувань проводиться обробником art.go, але прив'язка файлів з кодом здійснюється у файлі ".bp".

Інші новини

Найкраща ціна