Google-k Soong muntaketa sistema modularra garatzen du Androiderako

Google eraikitze sistema bat garatzen ari da Soong, Android plataformarako eraikitze-script zaharrak ordezkatzeko diseinatua, make utilitatearen erabileran oinarrituta. Soong-ek deklaratibo sinplea erabiltzea proposatzen du deskribapenak moduluak muntatzeko arauak, emana β€œ.bp” luzapena duten fitxategietan (planoak). Fitxategiaren formatua JSONtik hurbil dago eta, ahal bada, muntaketa fitxategien sintaxia eta semantika errepikatzen ditu. Bazel. Kodea Go-n idatzita dago eta Apache 2.0 lizentziapean banatzen da.

Soong eraikitze-fitxategiek ez dute baldintzapeko adierazpenak eta adarkatze-adierazpenak onartzen, baizik eta eraikitzerakoan erabilitako proiektuaren egitura, moduluak eta mendekotasunak deskribatzen dituzte. Eraiki beharreko fitxategiak maskarak erabiliz deskribatzen dira eta paketeetan multzokatzen dira, horietako bakoitza erlazionatutako menpekotasunak dituzten fitxategien bilduma bat da. Aldagaiak defini daitezke. Aldagaiak eta propietateak zorrozki idazten dira (aldagai motak dinamikoki hautatzen dira lehen esleipenean, eta propietateetarako estatikoki modulu motaren arabera). Muntaia-logikako elementu konplexuak kudeatzaileetara eramaten dira, idatzia Go hizkuntzan.

Soong proiektu handiago batekin nahasten da Blueprint, zeinaren barnean Android-i lotuta ez dagoen meta-muntaia-sistema bat garatzen ari dena, zeinak, modulu-deskribapen deklaratiboak dituzten fitxategietan oinarrituta, muntaia-scriptak sortzen dituena. Ninja (make-ren ordezkoa), eraikitzeko exekutatu behar diren komandoak eta mendekotasunak deskribatuz. Eraikuntza-logika definitzeko arau konplexuak edo domeinuko lengoaia espezifikoa erabili beharrean, Blueprint-ek proiektuaren berariazko kudeatzaileak erabiltzen ditu Go hizkuntzan (Soong Android-erako antzeko kudeatzaile multzo bat da funtsean).

Ikuspegi honi esker, proiektu handi eta heterogeneoak, Android adibidez, muntaketa-logikaren elementu konplexuak maila altuko programazio-lengoaia batean kodean inplementatzeko aukera ematen du, eta, aldi berean, muntaketa-antolaketari eta proiektu-egiturari lotutako moduluetan aldaketak egiteko gaitasuna mantenduz, sintaxi deklaratibo sinplea erabiliz. . Adibidez, Soong-en, konpiladore-marken hautaketa kudeatzaileak egiten du llvm.go, eta hardware-arkitekturari dagozkion ezarpenen aplikazioa kudeatzaileak egiten du arte.go, baina kode-fitxategiak lotzea β€œ.bp” fitxategian egiten da.

cc_library {
...
srcs: ["generic.cpp"],
arku: {
besoa: {
srcs: ["arm.cpp"],
},
x86: {
srcs: ["x86.cpp"],
},
},
}

Iturria: opennet.ru

Gehitu iruzkin berria