Google zhvillon sistemin e montimit modular Soong për Android

Google po zhvillon një sistem ndërtimi Së shpejti, i krijuar për të zëvendësuar skriptet e vjetra të ndërtimit për platformën Android, bazuar në përdorimin e mjetit make. Soong sugjeron përdorimin e një deklarate të thjeshtë përshkrimet rregullat për montimin e moduleve, dhënë në skedarë me shtesën “.bp” (skica). Formati i skedarit është afër JSON dhe, nëse është e mundur, përsërit sintaksën dhe semantikën e skedarëve të montimit bazel. Kodi është shkruar në Go dhe shpërndahet nën licencën Apache 2.0.

Skedarët e ndërtimit Soong nuk mbështesin deklarata të kushtëzuara dhe shprehje degëzimi, por përshkruajnë vetëm strukturën e projektit, modulet dhe varësitë e përdorura gjatë ndërtimit. Skedarët që do të ndërtohen përshkruhen duke përdorur maska ​​dhe grupohen në paketa, secila prej të cilave është një koleksion skedarësh me varësi të lidhura. Është e mundur të përcaktohen variablat. Variablat dhe vetitë janë të shtypura në mënyrë strikte (lloji i variablave zgjidhet në mënyrë dinamike me caktimin e parë, dhe për vetitë në mënyrë statike në varësi të llojit të modulit). Elementet komplekse të logjikës së montimit zhvendosen te mbajtësit, shkruar në gjuhën Go.

Soong ndërthuret me një projekt më të madh Plan, brenda të cilit është duke u zhvilluar një sistem meta-montues jo i lidhur me Android, i cili, bazuar në skedarët me përshkrime deklarative të modulit, gjeneron skriptet e montimit Ninja (një zëvendësim për make), duke përshkruar komandat që duhet të ekzekutohen për të ndërtuar dhe varësitë. Në vend që të përdorë rregulla komplekse ose një gjuhë specifike për domenin për të përcaktuar logjikën e ndërtimit, Blueprint përdor mbajtës të veçantë të projektit në gjuhën Go (Soong është në thelb një grup trajtuesish të ngjashëm për Android).

Kjo qasje lejon që projektet e mëdha dhe heterogjene, si Android, të zbatojnë elemente komplekse të logjikës së montimit në kod në një gjuhë programimi të nivelit të lartë, duke ruajtur aftësinë për të bërë ndryshime në modulet që lidhen me organizimin e asamblesë dhe strukturën e projektit duke përdorur sintaksë të thjeshtë deklarative. . Për shembull, në Soong, zgjedhja e flamujve të përpiluesit bëhet nga mbajtësi llvm.go, dhe aplikimi i cilësimeve specifike për arkitekturat e harduerit kryhet nga mbajtësi art.shko, por lidhja e skedarëve të kodit kryhet në skedarin “.bp”.

cc_biblioteka {
...
srcs: ["generic.cpp"],
hark: {
krahu: {
srcs: ["arm.cpp"],
},
x86:{
srcs: ["x86.cpp"],
},
},
}

Burimi: opennet.ru

Shto një koment