Google ûntwikkelet Soong modulêr montagesysteem foar Android

Google ûntwikkelet in bousysteem Soong, ûntworpen om de âlde build-skripts te ferfangen foar it Android-platfoarm, basearre op it gebrûk fan it make-helpprogramma. Soong suggerearret it brûken fan ienfâldige deklaratyf beskriuwings regels foar it gearstallen fan modules, jûn yn triemmen mei de tafoeging ".bp" (blueprints). It bestânsformaat is ticht by JSON en, as it mooglik is, werhellet de syntaksis en semantyk fan gearstallingsbestannen bazel. De koade is skreaun yn Go en ferspraat ûnder de Apache 2.0-lisinsje.

Soong build-bestannen stypje gjin betingsten útspraken en branching-útdrukkingen, mar beskriuwe allinich de projektstruktuer, modules en ôfhinklikens brûkt by it bouwen. De te bouwen bestannen wurde beskreaun mei maskers en groepeare yn pakketten, elk fan dat is in samling bestannen mei byhearrende ôfhinklikens. It is mooglik om fariabelen te definiearjen. Fariabelen en eigenskippen wurde strikt typearre (it type fariabelen wurdt dynamysk selektearre by earste opdracht, en foar eigenskippen statysk ôfhinklik fan it type fan de module). Komplekse eleminten fan assemblagelogika wurde ferpleatst nei handlers, skreaun yn Go taal.

Soong ferweeft mei in grutter projekt Blauwdruk. ninja (in ferfanging foar make), beskriuwt de kommando's dy't moatte wurde útfierd om te bouwen en de ôfhinklikens. Ynstee fan komplekse regels of in domeinspesifike taal te brûken om boulogika te definiearjen, brûkt Blueprint projektspesifike handlers yn 'e Go-taal (Soong is yn wêzen in set fan ferlykbere handlers foar Android).

Dizze oanpak makket it mooglik foar grutte en heterogene projekten, lykas Android, om komplekse eleminten fan assemblagelogika yn koade te ymplementearjen yn in programmeertaal op heech nivo, wylst de mooglikheid behâldt om feroaringen te meitsjen oan modules relatearre oan assemblageorganisaasje en projektstruktuer mei ienfâldige deklarative syntaksis . Bygelyks, yn Soong wurdt de seleksje fan kompilerflaggen dien troch de handler llvm.go, en de tapassing fan ynstellings spesifyk foar hardware arsjitektuer wurdt útfierd troch de handler art.go, mar it keppeljen fan koade triemmen wurdt útfierd yn de ".bp" triem.

cc_library {
...
srcs: ["generic.cpp"],
bôge: {
earm: {
srcs: ["arm.cpp"],
},
x86:{
srcs: ["x86.cpp"],
},
},
}

Boarne: opennet.ru

Add a comment