Google entwickelt ein modulares Build-System Soong fĂŒr Android

Das Unternehmen Google entwickelt ein Build-System Soong, das die alten Build-Scripte der Android-Plattform, die auf dem Einsatz des Make-Tools basierten, ersetzen soll. Soong bietet an, einfache deklarative Beschreibungen Build-Regeln fĂŒr Module festgelegt in Dateien mit der Endung „.bp“ (Blueprints). Das Dateiformat Ă€hnelt JSON und spiegelt nach Möglichkeit die Syntax und Semantik von Build-Dateien wider Bazel. Der Code ist in der Programmiersprache Go geschrieben und wird unter der Lizenz Apache 2.0 verbreitet.

Soong-Build-Dateien unterstĂŒtzen keine bedingten Operatoren und AusdrĂŒcke zur Verzweigung, sondern beschreiben lediglich die Struktur des Projekts, die zu verwendenden Module und AbhĂ€ngigkeiten. Die zu buildenden Dateien werden mittels Masken beschrieben und in Paketen gruppiert, wobei jedes Paket eine Sammlung von Dateien mit Angabe der zugehörigen AbhĂ€ngigkeiten darstellt. Variablen können definiert werden. Variablen und Eigenschaften sind streng typisiert (der Typ der Variablen wird dynamisch bei der ersten Zuweisung gewĂ€hlt, wĂ€hrend der Typ der Eigenschaften statisch je nach Modul-Typ festgelegt wird). Komplexe Elemente der Build-Logik werden in Handler ausgelagert, die geschrieben sind in der Programmiersprache Go.

Soong ist eng verbunden mit einem allgemeineren Projekt Blueprint, in dessen Rahmen ein nicht an Android gebundenes Metasystem fĂŒr Builds entwickelt wird, das auf Basis von Dateien mit deklarativen Beschreibungen von Modulen Build-Scripts erstellt, Ninja (Ersatz fĂŒr Make), die die Befehle beschreiben, die zur Erstellung ausgefĂŒhrt werden mĂŒssen, und die AbhĂ€ngigkeiten. Anstelle von komplexen Regeln oder domĂ€nenspezifischen Sprachen zur Definition der Build-Logik werden in Blueprint projektspezifische Handler in der Programmiersprache Go angewendet (Soong ist im Wesentlichen eine Sammlung solcher Handler fĂŒr Android).

Dieser Ansatz ermöglicht es großen und heterogenen Projekten wie Android, komplexe Elemente der Build-Logik in einem hochgradig abstrahierten Programmiercode zu implementieren, wĂ€hrend gleichzeitig die Möglichkeit erhalten bleibt, mit einer einfachen deklarativen Syntax Änderungen an den Modulen vorzunehmen, die mit der Organisation des Builds und der Projektstruktur zusammenhĂ€ngen. Zum Beispiel erfolgt die Auswahl der Compiler-Flags in Soong durch den Handler llvm.go, wĂ€hrend die spezifischen Einstellungen fĂŒr Hardware-Architekturen durch den Handler art.go, aber die Bindung der Dateien mit dem Code erfolgt in der Datei „.bp“.

cc_library {


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

Quelle: opennet.ru

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster