Google membangunkan sistem pemasangan modular Soong untuk Android

Google sedang membangunkan sistem binaan Soong, direka untuk menggantikan skrip binaan lama untuk platform Android, berdasarkan penggunaan utiliti make. Soong mencadangkan menggunakan deklaratif mudah penerangan peraturan untuk memasang modul, diberi dalam fail dengan sambungan ".bp" (cetak biru). Format fail hampir dengan JSON dan, jika boleh, mengulangi sintaks dan semantik fail pemasangan Bazel. Kod ini ditulis dalam Go dan diedarkan di bawah lesen Apache 2.0.

Fail binaan Soong tidak menyokong pernyataan bersyarat dan ungkapan percabangan, tetapi hanya menerangkan struktur projek, modul dan kebergantungan yang digunakan semasa membina. Fail yang akan dibina diterangkan menggunakan topeng dan dikumpulkan ke dalam pakej, setiap satunya adalah koleksi fail dengan kebergantungan yang berkaitan. Adalah mungkin untuk menentukan pembolehubah. Pembolehubah dan sifat ditaip dengan ketat (jenis pembolehubah dipilih secara dinamik semasa tugasan pertama, dan untuk sifat secara statik bergantung pada jenis modul). Elemen kompleks logik pemasangan dipindahkan ke pengendali, bertulis dalam bahasa Go.

Soong berkait dengan projek yang lebih besar Rangka Tindakan, di mana sistem pemasangan meta yang tidak terikat dengan Android sedang dibangunkan, yang, berdasarkan fail dengan penerangan modul perisytiharan, menjana skrip pemasangan Ninja (penggantian untuk membuat), menerangkan arahan yang perlu dijalankan untuk membina dan kebergantungan. Daripada menggunakan peraturan kompleks atau bahasa khusus domain untuk mentakrifkan logik binaan, Blueprint menggunakan pengendali khusus projek dalam bahasa Go (Soong pada asasnya ialah satu set pengendali yang serupa untuk Android).

Pendekatan ini membolehkan projek besar dan heterogen, seperti Android, untuk melaksanakan elemen kompleks logik pemasangan dalam kod dalam bahasa pengaturcaraan peringkat tinggi, sambil mengekalkan keupayaan untuk membuat perubahan pada modul yang berkaitan dengan organisasi pemasangan dan struktur projek menggunakan sintaks deklaratif mudah. Sebagai contoh, dalam Soong, pemilihan bendera pengkompil dilakukan oleh pengendali llvm.go, dan aplikasi tetapan khusus untuk seni bina perkakasan dijalankan oleh pengendali seni.pergi, tetapi pemautan fail kod dijalankan dalam fail ".bp".

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

Sumber: opennet.ru

Tambah komen