Google ngembangake sistem perakitan modular Soong kanggo Android

Google ngembangake sistem mbangun Soong, dirancang kanggo ngganti skrip mbangun lawas kanggo platform Android, adhedhasar panggunaan sarana make. Soong nyaranake nggunakake deklaratif prasaja katrangan aturan kanggo assembling modul, diwenehi ing file kanthi ekstensi ".bp" (blueprints). Format file cedhak karo JSON lan, yen bisa, mbaleni sintaks lan semantik file perakitan basel. Kode kasebut ditulis ing Go lan disebarake miturut lisensi Apache 2.0.

File mbangun Soong ora ndhukung pernyataan kondisional lan ekspresi cabang, nanging mung nggambarake struktur proyek, modul lan dependensi sing digunakake nalika mbangun. File sing bakal dibangun diterangake nggunakake topeng lan diklompokake dadi paket, sing saben-saben minangka kumpulan file kanthi dependensi sing ana gandhengane. Variabel bisa ditetepake. Variabel lan sifat diketik kanthi ketat (jinis variabel dipilih kanthi dinamis nalika tugas pisanan, lan kanggo sifat statis gumantung saka jinis modul). Unsur kompleks logika perakitan dipindhah menyang panangan, ditulis ing basa Go.

Soong intertwines karo proyek luwih gedhe blueprint, ing ngendi sistem meta-assembly sing ora ana gandhengane karo Android lagi dikembangake, sing adhedhasar file kanthi deskripsi modul deklaratif, ngasilake skrip perakitan Ninja (panggantos kanggo nggawe), njlentrehke printah sing kudu mbukak kanggo mbangun lan dependensi. Tinimbang nggunakake aturan rumit utawa basa khusus domain kanggo nemtokake logika mbangun, Blueprint nggunakake panangan khusus proyek ing basa Go (Soong sejatine minangka set panangan sing padha kanggo Android).

Pendekatan iki ngidini proyek gedhe lan heterogen, kayata Android, kanggo ngetrapake unsur kompleks logika perakitan ing kode ing basa pamrograman tingkat dhuwur, nalika njaga kemampuan kanggo ngowahi modul sing ana gandhengane karo organisasi perakitan lan struktur proyek nggunakake sintaks deklaratif sing prasaja. . Contone, ing Soong, pilihan panji kompiler ditindakake dening pawang llvm.go, lan aplikasi setelan khusus kanggo arsitektur hardware ditindakake dening pawang seni.go, nanging ngubungake file karo kode ditindakake ing file ".bp".

cc_library {
...
srcs: ["generic.cpp"],
lengkungan: {
lengan: {
srcs: ["arm.cpp"],
},
x86: {
srcs: ["x86.cpp"],
},
},
}

Source: opennet.ru

Add a comment