Google utvecklar det modulÀra byggsystemet Soong för Android

Google utvecklar ett byggsystem Soong, som syftar till att ersÀtta de gamla byggscenarierna för Android-plattformen, baserade pÄ anvÀndningen av verktyget make. Soong erbjuder en enkel deklarativ beskrivningar byggregler för moduler, definierade i filer med Àndelsen «.bp» (blueprints). Filformatet liknar JSON och efterstrÀvar sÄ lÄngt som möjligt att replikera syntaksen och semantiken hos byggfiler Bazel. Koden Àr skriven i Go och distribueras under Apache 2.0-licensen.

Byggfiler i Soong stöder inte villkorssatser och uttryck för förgrening, utan beskriver enbart projektets struktur, de moduler som anvÀnds vid byggandet och beroenden. Filer som ska byggas beskrivs med hjÀlp av maskor och grupperas i paket, var och en representerar en samling filer med angivna relaterade beroenden. Variabler kan definieras. Variabler och egenskaper Àr strikt typade (typen av variabler vÀljs dynamiskt vid första tilldelningen, medan för egenskaper statiskt beroende av modulens typ). Komplexa element av bygglogik har flyttats till hanterare, skrivna i Go.

Soong flÀtas samman med ett mer allmÀnt projekt Blueprint, inom vilket en plattformsoberoende metasystem för byggnation utvecklas, som baserat pÄ filer med deklarativa modellspecifikationer, formar byggscenarier Ninja (en ersÀttare till make), som beskriver de kommandon som behöver utföras för byggandet och beroenden. IstÀllet för att anvÀnda komplexa regler eller domÀnspecifika sprÄk för att definiera bygglogik anvÀnds i Blueprint projektspecifika hanterare skrivna i Go (Soong Àr i grunden en uppsÀttning sÄdana hanterare för Android).

Denna metod gör det möjligt för stora och heterogena projekt, som Android, att implementera komplexa element av bygglogik i kod skriven i ett högre programmeringssprÄk, samtidigt som möjligheten att med hjÀlp av enkelt deklarativ syntaks göra förÀndringar i moduler relaterade till byggorganisation och projektstruktur upprÀtthÄlls. Till exempel, i Soong görs valet av kompilatorflaggor av hanteraren llvm.go, och tillÀmpningen av arkitekturspecifika instÀllningar görs av hanteraren art.go, men kopplingen av filer med kod görs i filen «.bp».

cc_library {


srcs: [«generic.cpp»],
arch: {
arm: {
srcs: [«arm.cpp»],
},
x86: {
srcs: [«x86.cpp»],
},
},
}

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster