A Google fejleszti az Android számára készült moduláris build rendszert, a Soong-ot.

A Google a gyűjtő rendszert fejleszt Soong, amely célja, hogy helyettesítse az Android platform korábbi összeszerelési forgatókönyveit, amelyek a make segédprogram használatán alapultak. A Soong egyszerű deklaratív leírásai összeszerelési szabályok használatát kínálja, amelyeket a «.bp» (blueprints) kiterjesztésű fájlokban határoznak meg. A fájlformátum közel áll a JSON-hoz, és lehetőség szerint követi az összeszerelési fájlok szintaxisát és szemantikáját. BazelA kód Go nyelven íródott, és az Apache 2.0 licenc alatt terjesztik.

A Soong összeszerelési fájlok nem támogatják a feltételes operátorokat és ágaikat, csupán a projekt szerkezetét, az összeszereléshez alkalmazott modulokat és függőségeket írják le. Az összeszerelésre szánt fájlokat maszkolással írják le, és csomagokba csoportosítják, amelyek mindegyike egy fájlokból álló gyűjtemény, amely a kapcsolódó függőségeket határozza meg. Változók definiálása lehetséges. A változók és tulajdonságok szigorúan típusosak (a változók típusa dinamikusan választódik az első hozzárendeléskor, míg a tulajdonságok típusa statikusan, a modul típusa szerint). Az összetett összeszerelési logikai elemeket kezelőkre helyezték át, amelyek írásához Go nyelvet használnak.

A Soong összefonódik egy általánosabb projekttel, Blueprint, amely keretében egy Android-tól független meta-összeszerelési rendszer fejlődik, amely a deklaratív modul leírások fájljainak alapján összeszerelési forgatókönyveket hoz létre. Ninja (a make helyettesítése), amely leírja az összeszereléshez végrehajtandó parancsokat és a függőségeket. Ahelyett, hogy bonyolult szabályokat vagy tárgyorientált nyelvet használnánk az összeszerelési logika meghatározására, a Blueprint a projekt-specifikus kezelőket alkalmazza Go nyelven (a Soong valójában egy hasonló kezelőkből álló készlet az Androidhoz).

Ez a megközelítés lehetővé teszi nagy és heterogén projektek, mint például az Android, számára, hogy bonyolult összeszerelési logikai elemeket valósítsanak meg magas szintű programozási nyelven, miközben egyszerű deklaratív szintaxis alkalmazásával változtatásokat végezhetnek a modulokban, amelyek az összeszerelés és a projekt struktúrája mellett vannak. Például a Soong esetében a fordítói zászlók kiválasztása az llvm.go, míg a hardverarchitektúrákra specifikus beállítások alkalmazása az art.go, de a kódfájlok hivatkozása a «.bp» fájlban történik.

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

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster