O Google está desenvolvendo um sistema de construção
Os arquivos de construção Soong não suportam instruções condicionais e expressões de ramificação, mas apenas descrevem a estrutura do projeto, módulos e dependências usadas durante a construção. Os arquivos a serem construídos são descritos por meio de máscaras e agrupados em pacotes, cada um dos quais é uma coleção de arquivos com dependências associadas. Variáveis podem ser definidas. Variáveis e propriedades são digitadas estritamente (o tipo de variáveis é selecionado dinamicamente na primeira atribuição e para propriedades estaticamente dependendo do tipo do módulo). Elementos complexos da lógica assembly são movidos para manipuladores,
Soong se entrelaça com um projeto maior
Essa abordagem permite que projetos grandes e heterogêneos, como Android, implementem elementos complexos de lógica assembly em código em uma linguagem de programação de alto nível, mantendo a capacidade de fazer alterações em módulos relacionados à organização de montagem e estrutura do projeto usando sintaxe declarativa simples. . Por exemplo, em Soong, a seleção dos flags do compilador é feita pelo manipulador
cc_biblioteca {
...
srcs: ["genérico.cpp"],
arco: {
braço: {
srcs: ["arm.cpp"],
},
x86: {
srcs: ["x86.cpp"],
},
},
}
Fonte: opennet.ru