Google arendab ehitussüsteemi
Soong build failid ei toeta tingimuslauseid ja hargnevaid avaldisi, vaid kirjeldavad ainult projekti struktuuri, mooduleid ja ehitamisel kasutatavaid sõltuvusi. Ehitatavaid faile kirjeldatakse maskide abil ja rühmitatakse pakettideks, millest igaüks on failide kogum, millel on seotud sõltuvused. Muutujaid on võimalik defineerida. Muutujad ja omadused on rangelt tipitud (muutujate tüüp valitakse dünaamiliselt esmakordsel määramisel ja atribuutide puhul staatiliselt sõltuvalt mooduli tüübist). Montaažiloogika keerulised elemendid viiakse käitlejatesse,
Soong põimub suurema projektiga
Selline lähenemine võimaldab suurte ja heterogeensete projektide (nt Android) puhul rakendada keerulisi montaažiloogika elemente koodis kõrgetasemelises programmeerimiskeeles, säilitades samal ajal võimaluse teha lihtsa deklaratiivse süntaksi abil muudatusi koostekorralduse ja projekti struktuuriga seotud moodulites. . Näiteks Soongis teeb kompilaatori lippude valiku töötleja
cc_library {
...
srcs: ["generic.cpp"],
kaar: {
käsi: {
srcs: ["arm.cpp"],
},
x86:{
srcs: ["x86.cpp"],
},
},
}
Allikas: opennet.ru