Google sta sviluppando un sistema di assemblaggio modulare Soong per Android

Google sviluppa un sistema di build chiamato Soong, destinato a sostituire i vecchi script di build della piattaforma Android, basati sull'uso dell'utilità make. Soong propone un utilizzo semplificato delle dichiarazioni descrizioni per le regole di build dei moduli, definite in file con estensione «.bp» (blueprints). Il formato dei file è simile a JSON e cerca di riprodurre il più possibile la sintassi e la semantica dei file di build Bazel. Il codice è scritto in Go e distribuito sotto la licenza Apache 2.0.

I file di build Soong non supportano operatori condizionali ed espressioni per il branching, ma descrivono soltanto la struttura del progetto, i moduli utilizzati durante la build e le dipendenze. I file da costruire sono descritti tramite pattern e raggruppati in pacchetti, ciascuno dei quali rappresenta una raccolta di file con l'indicazione delle relative dipendenze. È possibile definire variabili. Sia le variabili che le proprietà sono fortemente tipizzate (il tipo delle variabili viene scelto dinamicamente alla prima assegnazione, mentre per le proprietà in modo statico in base al tipo di modulo). Gli elementi complessi della logica di build sono stati estratti in gestori, scritti in Go.

Soong si intreccia con un progetto più ampio Blueprint, all'interno del quale si sviluppa un sistema di build meta non legato ad Android, che, sulla base di file con descrizioni dichiarative dei moduli, crea scenari di build Ninja (sostituto di make), che descrivono i comandi da eseguire per la build e le dipendenze. Invece di applicare regole complesse o un linguaggio specifico per determinare la logica di build, in Blueprint vengono utilizzati gestori specifici per i progetti in fase di build scritti in Go (Soong è essenzialmente un insieme di tali gestori per Android).

Questo approccio consente, per progetti ampi e variegati come Android, di realizzare elementi complessi della logica di build nel codice in un linguaggio di programmazione di alto livello, mantenendo però la possibilità di apportare modifiche legate all'organizzazione della build e alla struttura del progetto attraverso una semplice sintassi dichiarativa. Ad esempio, in Soong la scelta delle opzioni del compilatore è effettuata dal gestore llvm.go, e l'applicazione delle impostazioni specifiche per le architetture hardware è eseguita dal gestore art.go, ma il collegamento dei file con il codice avviene nel file «.bp».

cc_library {

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

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster