A Google moduláris összeszerelő rendszert fejleszt, a Soong for Android

A Google összeállítási rendszert fejleszt Soong, amely az Android platform régi build szkriptjeit helyettesíti, a make segédprogram használata alapján. Soong egyszerű kijelentő használatát javasolja leírások a modulok összeállításának szabályai, adott „.bp” kiterjesztésű fájlokban (tervrajzok). A fájlformátum közel áll a JSON-hoz, és ha lehetséges, megismétli az összeállítási fájlok szintaxisát és szemantikáját Bazel. A kód Go nyelven íródott, és az Apache 2.0 licenc alatt terjeszthető.

A Soong build fájlok nem támogatják a feltételes utasításokat és az elágazó kifejezéseket, csak a projekt felépítését, a modulokat és az építés során használt függőségeket írják le. Az elkészítendő fájlok leírása maszkok segítségével történik, és csomagokba vannak csoportosítva, amelyek mindegyike fájlok gyűjteménye a kapcsolódó függőségekkel. Lehetőség van változók definiálására. A változók és tulajdonságok szigorúan tipizáltak (a változók típusa az első hozzárendeléskor dinamikusan, a tulajdonságoknál pedig a modul típusától függően statikusan kerül kiválasztásra). Az összeállítási logika összetett elemei a kezelőkbe kerülnek, írott Go nyelven.

Soong összefonódik egy nagyobb projekttel Tervrajz, amelyen belül egy Androidhoz nem kötődő meta-assembly rendszert fejlesztenek, amely deklaratív modulleírású fájlok alapján assembly szkripteket generál Nindzsa (a make helyettesítője), leírja a felépítéshez futtatandó parancsokat és a függőségeket. Ahelyett, hogy összetett szabályokat vagy tartományspecifikus nyelvet használna az építési logika meghatározásához, a Blueprint projektspecifikus kezelőket használ a Go nyelven (a Soong lényegében hasonló kezelők készlete Androidhoz).

Ez a megközelítés lehetővé teszi a nagy és heterogén projektek, például az Android számára, hogy magas szintű programozási nyelven kódban implementálják az assembly logika összetett elemeit, miközben megőrzik az összeállításszervezéssel és a projektstruktúrával kapcsolatos modulok módosításának lehetőségét egyszerű deklaratív szintaxis segítségével. . Például a Soongban a fordítójelzők kiválasztását a kezelő végzi llvm.go, a hardverarchitektúrákra jellemző beállítások alkalmazását pedig a kezelő végzi art.go, de a kódfájlok összekapcsolása a „.bp” fájlban történik.

cc_library {
...
srcs: ["generic.cpp"],
ív: {
kar: {
srcs: ["arm.cpp"],
},
x86: {
srcs: ["x86.cpp"],
},
},
}

Forrás: opennet.ru

Hozzászólás