Google kehittää rakennusjärjestelmää
Soong build -tiedostot eivät tue ehdollisia lausekkeita ja haarautumislausekkeita, vaan kuvaavat vain projektin rakennetta, moduuleja ja rakentamisessa käytettyjä riippuvuuksia. Rakennettavat tiedostot kuvataan maskien avulla ja ryhmitellään paketeiksi, joista jokainen on kokoelma tiedostoja ja niihin liittyviä riippuvuuksia. On mahdollista määritellä muuttujia. Muuttujat ja ominaisuudet kirjoitetaan tiukasti (muuttujien tyyppi valitaan dynaamisesti ensimmäisen määrityksen yhteydessä ja ominaisuudet staattisesti riippuen moduulin tyypistä). Monimutkaiset kokoonpanologiikan elementit siirretään käsittelijöihin,
Soong kietoutuu suurempaan projektiin
Tämä lähestymistapa mahdollistaa suurien ja heterogeenisten projektien, kuten Androidin, toteuttaa monimutkaisia kokoonpanologiikan elementtejä koodissa korkean tason ohjelmointikielellä säilyttäen samalla kyvyn tehdä muutoksia kokoonpanon organisaatioon ja projektirakenteeseen liittyviin moduuleihin käyttämällä yksinkertaista deklaratiivista syntaksia. . Esimerkiksi Soongissa kääntäjälippujen valinnan tekee käsittelijä
cc_library {
...
srcs: ["generic.cpp"],
kaari: {
käsivarsi: {
srcs: ["arm.cpp"],
},
x86:{
srcs: ["x86.cpp"],
},
},
}
Lähde: opennet.ru