Google izstrādā Soong moduļu montāžas sistēmu operētājsistēmai Android

Google izstrādā montāžas sistēmu Soongizstrādāts, lai aizstātu vecos Android platformas būvēšanas skriptus, pamatojoties uz make utilīta izmantošanu. Soongs iesaka izmantot vienkāršu deklaratīvu apraksti moduļu montāžas noteikumi, dots failos ar paplašinājumu ".bp" (projektos). Faila formāts ir tuvs JSON un, ja iespējams, atkārto montāžas failu sintaksi un semantiku Bazel. Kods ir rakstīts programmā Go un izplatīts saskaņā ar Apache 2.0 licenci.

Soong build faili neatbalsta nosacījumu paziņojumus un sazarošanas izteiksmes, bet tikai apraksta projekta struktūru, moduļus un būvniecībā izmantotās atkarības. Veidojamie faili ir aprakstīti, izmantojot aizstājējzīmes, un sagrupēti pakotnēs, no kurām katra ir failu kolekcija ar saistītajām atkarībām. Ir iespējams definēt mainīgos. Mainīgie un rekvizīti ir stingri tipizēti (mainīgo tips tiek izvēlēts dinamiski pirmajā piešķiršanas reizē un rekvizītiem statiski, atkarībā no moduļa veida). Sarežģītie montāžas loģikas elementi tiek pārvietoti uz apstrādātājiem, rakstīts Go valodā.

Soongs savijas ar vispārīgāku projektu projekts, kuras ietvaros tiek izstrādāta ar Android nesaistīta montāžas metasistēma, kas, pamatojoties uz failiem ar deklaratīviem moduļu aprakstiem, ģenerē montāžas skriptus ninja (aizstāj make), kas apraksta komandas, kas jāpalaiž, lai izveidotu, un atkarības. Tā vietā, lai izmantotu sarežģītus noteikumus vai domēnam specifisku valodu, lai definētu veidošanas loģiku, Blueprint izmanto projektam specifiskus veidošanas apdarinātājus Go valodā (Soong būtībā ir līdzīgu apdarinātāju kopa operētājsistēmai Android).

Šī pieeja ļauj lieliem un neviendabīgiem projektiem, piemēram, Android, ieviest kompleksus montāžas loģikas elementus kodā augsta līmeņa programmēšanas valodā, vienlaikus saglabājot iespēju veikt izmaiņas moduļos, kas saistīti ar montāžas organizāciju un projekta struktūru, izmantojot vienkāršu deklaratīvu. sintakse. Piemēram, Soong kompilatora karogu izvēli veic apstrādātājs llvm.go, un aparatūras arhitektūrai raksturīgo iestatījumu piemērošanu veic apstrādātājs art.go, bet failu saistīšana ar kodu tiek veikta failā ".bp".

cc_library {
...
srcs: ["generic.cpp"],
arka: {
roka: {
srcs: ["arm.cpp"],
},
x86: {
srcs: ["x86.cpp"],
},
},
}

Avots: opennet.ru

Pievieno komentāru