Google entwickelt ein Build-System
Soong-Build-Dateien unterstützen keine bedingten Anweisungen und Verzweigungsausdrücke, sondern beschreiben nur die Projektstruktur, Module und Abhängigkeiten, die beim Erstellen verwendet werden. Die zu erstellenden Dateien werden mithilfe von Masken beschrieben und in Pakete gruppiert, bei denen es sich jeweils um eine Sammlung von Dateien mit zugehörigen Abhängigkeiten handelt. Es ist möglich, Variablen zu definieren. Variablen und Eigenschaften sind streng typisiert (der Variablentyp wird dynamisch bei der ersten Zuweisung ausgewählt, bei Eigenschaften statisch abhängig vom Modultyp). Komplexe Elemente der Assemblerlogik werden in Handler verschoben,
Soong ist mit einem größeren Projekt verknüpft
Dieser Ansatz ermöglicht es großen und heterogenen Projekten wie Android, komplexe Elemente der Assemblerlogik im Code einer höheren Programmiersprache zu implementieren und gleichzeitig die Möglichkeit beizubehalten, mithilfe einfacher deklarativer Syntax Änderungen an Modulen im Zusammenhang mit der Assemblierungsorganisation und der Projektstruktur vorzunehmen . Beispielsweise erfolgt in Soong die Auswahl der Compiler-Flags durch den Handler
cc_library {
...
srcs: ["generic.cpp"],
Bogen: {
Arm: {
srcs: ["arm.cpp"],
},
x86:{
Quellen: ["x86.cpp"],
},
},
}
Source: opennet.ru