Google ontwikkelt een buildsysteem
Soong-buildbestanden ondersteunen geen voorwaardelijke instructies en vertakkende expressies, maar beschrijven alleen de projectstructuur, modules en afhankelijkheden die bij het bouwen worden gebruikt. De te bouwen bestanden worden beschreven met behulp van maskers en gegroepeerd in pakketten, die elk een verzameling bestanden zijn met bijbehorende afhankelijkheden. Het is mogelijk om variabelen te definiëren. Variabelen en eigenschappen zijn strikt getypeerd (het type variabelen wordt dynamisch geselecteerd bij de eerste toewijzing, en voor eigenschappen statisch afhankelijk van het type module). Complexe elementen van assemblagelogica worden verplaatst naar handlers,
Soong is verweven met een groter project
Deze aanpak maakt het voor grote en heterogene projecten, zoals Android, mogelijk om complexe elementen van assemblagelogica in code in een programmeertaal op hoog niveau te implementeren, terwijl de mogelijkheid behouden blijft om wijzigingen aan te brengen in modules die verband houden met assemblageorganisatie en projectstructuur met behulp van eenvoudige declaratieve syntaxis. . In Soong wordt de selectie van compilervlaggen bijvoorbeeld gedaan door de handler
cc_bibliotheek {
...
srcs: ["generiek.cpp"],
boog: {
arm: {
srcs: ["arm.cpp"],
},
x86:{
srcs: ["x86.cpp"],
},
},
}
Bron: opennet.ru