Google razvija sistem gradnje
Datoteke za gradnjo Soong ne podpirajo pogojnih stavkov in izrazov za razvejanje, temveč le opisujejo strukturo projekta, module in odvisnosti, uporabljene pri gradnji. Datoteke, ki jih je treba zgraditi, so opisane z uporabo mask in združene v pakete, od katerih je vsak zbirka datotek s povezanimi odvisnostmi. Možno je definirati spremenljivke. Spremenljivke in lastnosti so strogo tipizirane (vrsto spremenljivk izberemo dinamično ob prvi dodelitvi, lastnosti pa statično glede na vrsto modula). Kompleksni elementi logike sestavljanja se premaknejo v upravljalnike,
Soong se prepleta z večjim projektom
Ta pristop omogoča velikim in heterogenim projektom, kot je Android, implementacijo kompleksnih elementov logike sestavljanja v kodo v programskem jeziku na visoki ravni, hkrati pa ohranja možnost spreminjanja modulov, povezanih z organizacijo sestavljanja in strukturo projekta, z uporabo preproste deklarativne sintakse . Na primer, v Soongu izbiro zastavic prevajalnika opravi upravljavec
cc_library {
...
srcs: ["generic.cpp"],
lok: {
roka: {
srcs: ["arm.cpp"],
},
x86: {
srcs: ["x86.cpp"],
},
},
}
Vir: opennet.ru