Kompania Google po zhvillon një sistem ndërtimi , i cili ka si qëllim të zëvendësojë skenarët e vjetër të ndërtimit të platformës Android, të bazuar në përdorimin e utilit të make. Soong ofron përdorimin e përshkrimeve deklarative të thjeshta të rregullave të ndërtimit të moduleve, në skedarët me zgjerimin «.bp» (blueprints). Formati i skedarëve është i ngjashëm me JSON dhe përpiqet të përsërisë sintaksën dhe semantikën e skedarëve të ndërtimit . Kodi është shkruar në gjuhën Go dhe shpërndahet nën licencën Apache 2.0.
SkedarĂ«t e ndĂ«rtimit Soong nuk mbĂ«shtesin operatorĂ« dhe shprehje kushtore pĂ«r ndarje, por pĂ«rshkruajnĂ« vetĂ«m strukturĂ«n e projektit, modulĂ«t dhe varĂ«sitĂ« qĂ« pĂ«rdoren gjatĂ« ndĂ«rtimit. SkedarĂ«t qĂ« duhet tĂ« ndĂ«rtohen pĂ«rshkruhen me mjete dhe grupohen nĂ« paketa, çdo njĂ«ri prej tĂ« cilave pĂ«rfaqĂ«son njĂ« koleksion skedarĂ«sh me tregimin e varĂ«sive tĂ« lidhura me to. ĂshtĂ« e mundur tĂ« pĂ«rcaktohen variablat. Variablat dhe pronat janĂ« tĂ« tipizuara nĂ« mĂ«nyrĂ« strikte (tipi i variablave zgjidhet dinamik gjatĂ« caktimit tĂ« parĂ«, ndĂ«rsa pĂ«r pronat ndryshe statikisht, nĂ« varĂ«si tĂ« tipit tĂ« modulit). Elementet komplekse tĂ« logjikĂ«s sĂ« ndĂ«rtimit janĂ« tĂ« shkĂ«putura nĂ« trajtuesit, nĂ« gjuhĂ«n Go.
Soong ndërthuret me një projekt më të përgjithshëm , në kuadrin e të cilit zhvillohet një meta-sistem ndërtimi i pa lidhur me Android, i cili, bazuar në skedarët me përshkrime deklarative të moduleve, formon skenarë ndërtimi (zëvendësimi i make), që përshkruan komandat që duhet të ekzekutohen për ndërtim dhe varësitë. Në vend të përdorimit të rregullave komplekse ose të një gjuhe të orientuar drejt objektit për të përcaktuar logjikën e ndërtimit, në Blueprint përdoren trajtesa specifike për projektet që po ndërtohen në gjuhën Go (Soong është në thelb një grup i tillë trajtesash për Android).
Kjo qasje lejon që për projekte të mëdha dhe të ndryshme, si Android, të realizohen elemente komplekse të logjikës së ndërtimit në kodin e një gjuhe programimi në nivel të lartë, duke ruajtur përveç kësaj mundësinë përmes një sintaksë deklarative të thjeshtë për të bërë ndryshime në modulet që lidhen me organizimin e ndërtimit dhe strukturën e projektit. Për shembull, në Soong zgjedhja e flagjeve të kompilimit bëhet nga trajtesa , dhe aplikimi i konfigurimeve specifike për arkitekturën e harduerit bëhet nga trajtesa , por lidhjen e skedave me kodin bëhet në skedën «.bp».
cc_library {
âŠ
srcs: [«generic.cpp»],
arch: {
arm: {
srcs: [«arm.cpp»],
},
x86: {
srcs: [«x86.cpp»],
},
},
}
Burimi: opennet.ru
