Google ontwikkel 'n modulêre samestellingstelsel Soong vir Android

Google ontwikkel 'n boustelsel Soong, ontwerp om die ou bouskrifte vir die Android-platform te vervang, gebaseer op die gebruik van die make-nutsding. Soong stel voor om eenvoudige verklarende te gebruik beskrywings reëls vir die samestelling van modules, gegee in lêers met die uitbreiding “.bp” (bloudrukke). Die lêerformaat is naby aan JSON en, indien moontlik, herhaal die sintaksis en semantiek van samestellinglêers Bazel. Die kode is in Go geskryf en onder die Apache 2.0-lisensie versprei.

Soong-boulêers ondersteun nie voorwaardelike stellings en vertakkingsuitdrukkings nie, maar beskryf slegs die projekstruktuur, modules en afhanklikhede wat gebruik word tydens die bou. Die lêers wat gebou moet word, word beskryf met behulp van maskers en gegroepeer in pakkette, wat elkeen 'n versameling lêers met gepaardgaande afhanklikhede is. Dit is moontlik om veranderlikes te definieer. Veranderlikes en eienskappe word streng getik (die tipe veranderlikes word dinamies gekies by eerste opdrag, en vir eienskappe staties afhangende van die tipe module). Komplekse elemente van samestellingslogika word na hanteerders verskuif, geskryf in Go-taal.

Soong vervleg met 'n groter projek Blueprint, waarbinne 'n metasamestellingstelsel ontwikkel word wat nie aan Android gekoppel is nie, wat, gebaseer op lêers met verklarende modulebeskrywings, samestellingsskrifte genereer ninja ('n plaasvervanger vir maak), wat die opdragte beskryf wat uitgevoer moet word om te bou en die afhanklikhede. In plaas daarvan om komplekse reëls of 'n domeinspesifieke taal te gebruik om boulogika te definieer, gebruik Blueprint projekspesifieke hanteerders in die Go-taal (Soong is in wese 'n stel soortgelyke hanteerders vir Android).

Hierdie benadering maak voorsiening vir groot en heterogene projekte, soos Android, om komplekse elemente van samestellingslogika in kode in 'n hoëvlak-programmeertaal te implementeer, terwyl die vermoë behou word om veranderinge aan modules wat verband hou met samestellingsorganisasie en projekstruktuur aan te bring deur gebruik te maak van eenvoudige verklarende sintaksis . Byvoorbeeld, in Soong word die keuse van samestellervlae deur die hanteerder gedoen llvm.gaan, en die toepassing van instellings spesifiek vir hardeware-argitekture word deur die hanteerder uitgevoer art.go, maar die koppeling van kodelêers word in die “.bp”-lêer uitgevoer.

cc_biblioteek {
...
srcs: ["generic.cpp"],
boog: {
arm: {
srcs: ["arm.cpp"],
},
x86:{
srcs: ["x86.cpp"],
},
},
}

Bron: opennet.ru

Voeg 'n opmerking