Компанія Google розвиває збірну систему
Складальні файли Soong не підтримують умовних операторів та виразів для розгалуження, а лише описують структуру проекту, які застосовуються при складанні модулів та залежності. Файли, що підлягають складання, описуються за допомогою масок і групуються в пакети, кожен з яких являє собою колекцію файлів із зазначенням пов'язаних з ними залежностей. Можливе визначення змінних. Змінні та властивості строго типізовані (тип змінних вибирається динамічно при першому присвоєнні, а для властивостей статично залежно від типу модуля). Складні елементи складальної логіки винесені в обробники,
Soong переплітається із більш загальним проектом
Подібний підхід дозволяє для великих та різнорідних проектів, таких як Android, реалізувати складні елементи складальної логіки в коді високорівневою мовою програмування, при цьому зберігаючи можливість за допомогою простого декларативного синтаксису вносити до модулів зміни, пов'язані з організацією складання та структурою проекту. Наприклад, у Soong вибір прапорів компілятора проводиться обробником
cc_library {
...
srcs: [«generic.cpp»],
arch: {
arm: {
srcs: [«arm.cpp»],
},
x86: {
srcs: [x86.cpp],
},
},
}
Джерело: opennet.ru