Google dezvoltă un sistem de compilare
Fișierele de compilare Soong nu acceptă declarații condiționate și expresii de ramificare, ci doar descriu structura proiectului, modulele și dependențele utilizate la construirea. Fișierele care urmează să fie construite sunt descrise folosind măști și grupate în pachete, fiecare dintre acestea fiind o colecție de fișiere cu dependențe asociate. Variabilele pot fi definite. Variabilele și proprietățile sunt strict tipizate (tipul de variabile este selectat dinamic la prima atribuire, iar pentru proprietăți static în funcție de tipul modulului). Elementele complexe ale logicii de asamblare sunt mutate la manipulatori,
Soong se împletește cu un proiect mai amplu
Această abordare permite proiectelor mari și eterogene, cum ar fi Android, să implementeze elemente complexe ale logicii de asamblare în cod într-un limbaj de programare de nivel înalt, menținând în același timp capacitatea de a face modificări modulelor legate de organizarea de asamblare și structura proiectului folosind sintaxa declarativă simplă. . De exemplu, în Soong, selectarea steagurilor compilatorului este făcută de handler
cc_library {
...
srcs: ["generic.cpp"],
arc: {
braț: {
srcs: ["arm.cpp"],
},
x86:{
srcs: ["x86.cpp"],
},
},
}
Sursa: opennet.ru