Google está desarrollando un sistema de compilación
Los archivos de compilación de Soong no admiten declaraciones condicionales ni expresiones de ramificación, sino que solo describen la estructura del proyecto, los módulos y las dependencias utilizadas durante la compilación. Los archivos que se van a crear se describen mediante máscaras y se agrupan en paquetes, cada uno de los cuales es una colección de archivos con dependencias asociadas. Es posible definir variables. Las variables y propiedades están estrictamente tipificadas (el tipo de variables se selecciona dinámicamente en la primera asignación y las propiedades de forma estática según el tipo de módulo). Los elementos complejos de la lógica ensambladora se mueven a controladores,
Soong se entrelaza con un proyecto más grande
Este enfoque permite que proyectos grandes y heterogéneos, como Android, implementen elementos complejos de lógica ensambladora en código en un lenguaje de programación de alto nivel, manteniendo al mismo tiempo la capacidad de realizar cambios en los módulos relacionados con la organización del ensamblador y la estructura del proyecto utilizando una sintaxis declarativa simple. . Por ejemplo, en Soong, la selección de indicadores del compilador la realiza el controlador.
biblioteca_cc {
...
srcs: ["generico.cpp"],
arco: {
brazo: {
srcs: ["arm.cpp"],
},
x86:{
srcs: ["x86.cpp"],
},
},
}
Fuente: opennet.ru