Google нь Android-д зориулсан Soong модульчлагдсан угсралтын системийг хөгжүүлдэг

Google нь бүтээх системийг хөгжүүлж байна Удахгүй, make utility-ийн хэрэглээнд тулгуурлан Android платформын хуучин бүтээх скриптүүдийг солих зориулалттай. Сунг энгийн тунхаглалыг ашиглахыг санал болгож байна тодорхойлолт модулиудыг угсрах дүрэм, өгсөн ".bp" өргөтгөлтэй файлуудад (зураг). Файлын формат нь JSON-д ойрхон бөгөөд боломжтой бол угсралтын файлуудын синтакс болон семантикийг давтдаг. Базел. Код нь Go дээр бичигдсэн бөгөөд Apache 2.0 лицензийн дагуу түгээгддэг.

Soong build файлууд нь нөхцөлт мэдэгдлүүд болон салаалсан илэрхийллүүдийг дэмждэггүй бөгөөд зөвхөн бүтээхэд хэрэглэгдэх төслийн бүтэц, модулиуд болон хамаарлыг тодорхойлдог. Үүсгэх файлуудыг маск ашиглан тайлбарлаж, багц болгон бүлэглэсэн бөгөөд тус бүр нь хамааралтай хамааралтай файлуудын цуглуулга юм. Хувьсагчдыг тодорхойлох боломжтой. Хувьсагчид болон шинж чанаруудыг хатуу бичдэг (хувьсагчийн төрлийг эхний даалгавраар динамикаар, харин модулийн төрлөөс хамааран шинж чанаруудыг статик байдлаар сонгоно). Угсралтын логикийн нарийн төвөгтэй элементүүдийг зохицуулагч руу шилжүүлдэг. бичсэн Go хэл дээр.

Удалгүй том төсөлтэй холбогдоно зураг төсөл, үүний дотор Андройдтой холбоогүй мета-угсралтын системийг боловсруулж байгаа бөгөөд энэ нь тунхаглалын модулийн тайлбар бүхий файлууд дээр үндэслэн угсралтын скриптүүдийг үүсгэдэг. Ninja (make-ийн орлуулалт), бүтээхэд ажиллах шаардлагатай командууд болон хамаарлыг тайлбарласан. Бүтээлийн логикийг тодорхойлохын тулд нарийн төвөгтэй дүрэм эсвэл домэйны тусгай хэлийг ашиглахын оронд Blueprint нь Go хэл дээрх төслийн тусгай зохицуулагчийг ашигладаг (Soong нь үндсэндээ Android-д зориулсан ижил төстэй зохицуулагчийн багц юм).

Энэхүү арга нь Андройд зэрэг том бөгөөд нэг төрлийн бус төслүүдэд угсралтын логикийн нарийн төвөгтэй элементүүдийг кодонд дээд түвшний програмчлалын хэлээр хэрэгжүүлэх боломжийг олгодог бөгөөд угсралтын зохион байгуулалт, төслийн бүтэцтэй холбоотой модулиудад энгийн тунхаглалын синтакс ашиглан өөрчлөлт оруулах чадварыг хадгалах боломжийг олгодог. . Жишээлбэл, Soong-д хөрвүүлэгчийн тугуудын сонголтыг зохицуулагч хийдэг llvm.go, мөн техник хангамжийн архитектурт хамаарах тохиргоонуудын хэрэглээг зохицуулагч гүйцэтгэдэг art.go, гэхдээ кодын файлуудын холболтыг ".bp" файлд гүйцэтгэдэг.

cc_library {
...
srcs: ["generic.cpp"],
нуман: {
гар: {
srcs: ["arm.cpp"],
},
x86: {
srcs: ["x86.cpp"],
},
},
}

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх