Η Google αναπτύσσει αρθρωτό σύστημα συναρμολόγησης Soong για Android

Η Google αναπτύσσει ένα σύστημα κατασκευής Σονγκ, σχεδιασμένο για να αντικαταστήσει τα παλιά σενάρια κατασκευής για την πλατφόρμα Android, με βάση τη χρήση του βοηθητικού προγράμματος make. Η Soong προτείνει τη χρήση απλών δηλωτικών περιγραφές κανόνες για τη συναρμολόγηση μονάδων, δεδομένος σε αρχεία με κατάληξη “.bp” (σχεδιαγράμματα). Η μορφή αρχείου είναι κοντά στο JSON και, αν είναι δυνατόν, επαναλαμβάνει τη σύνταξη και τη σημασιολογία των αρχείων συναρμολόγησης Bazel. Ο κώδικας είναι γραμμένος στο Go και διανέμεται με την άδεια Apache 2.0.

Τα αρχεία έκδοσης Soong δεν υποστηρίζουν δηλώσεις υπό όρους και εκφράσεις διακλάδωσης, αλλά περιγράφουν μόνο τη δομή του έργου, τις λειτουργικές μονάδες και τις εξαρτήσεις που χρησιμοποιούνται κατά τη δημιουργία. Τα αρχεία που πρόκειται να κατασκευαστούν περιγράφονται χρησιμοποιώντας μάσκες και ομαδοποιούνται σε πακέτα, καθένα από τα οποία είναι μια συλλογή αρχείων με σχετικές εξαρτήσεις. Είναι δυνατός ο ορισμός μεταβλητών. Οι μεταβλητές και οι ιδιότητες είναι αυστηρά πληκτρολογημένες (ο τύπος των μεταβλητών επιλέγεται δυναμικά κατά την πρώτη ανάθεση και για τις ιδιότητες στατικά ανάλογα με τον τύπο της ενότητας). Πολύπλοκα στοιχεία της λογικής συναρμολόγησης μετακινούνται στους χειριστές, γραπτός στη γλώσσα Go.

Ο Soong συνυφαίνεται με ένα μεγαλύτερο έργο Προσχέδιο, εντός του οποίου αναπτύσσεται ένα σύστημα μετασυναρμολόγησης που δεν συνδέεται με το Android, το οποίο, με βάση αρχεία με δηλωτικές περιγραφές λειτουργικών μονάδων, δημιουργεί σενάρια συναρμολόγησης Ninja (αντικατάσταση του make), περιγράφοντας τις εντολές που πρέπει να εκτελεστούν για τη δημιουργία και τις εξαρτήσεις. Αντί να χρησιμοποιεί περίπλοκους κανόνες ή γλώσσα συγκεκριμένης περιοχής για τον ορισμό της λογικής κατασκευής, το Blueprint χρησιμοποιεί χειριστές συγκεκριμένου έργου στη γλώσσα Go (το Soong είναι ουσιαστικά ένα σύνολο παρόμοιων προγραμμάτων χειρισμού για Android).

Αυτή η προσέγγιση επιτρέπει σε μεγάλα και ετερογενή έργα, όπως το Android, να εφαρμόζουν πολύπλοκα στοιχεία λογικής συναρμολόγησης σε κώδικα σε γλώσσα προγραμματισμού υψηλού επιπέδου, διατηρώντας παράλληλα τη δυνατότητα να κάνουν αλλαγές σε ενότητες που σχετίζονται με την οργάνωση συναρμολόγησης και τη δομή του έργου χρησιμοποιώντας απλή δηλωτική σύνταξη . Για παράδειγμα, στο Soong, η επιλογή των σημαιών του μεταγλωττιστή γίνεται από τον χειριστή llvm.go, και η εφαρμογή ρυθμίσεων ειδικών για αρχιτεκτονικές υλικού πραγματοποιείται από τον χειριστή art.go, αλλά η σύνδεση αρχείων με κώδικα πραγματοποιείται στο αρχείο “.bp”.

cc_library {
...
srcs: ["generic.cpp"],
αψίδα: {
βραχίονας: {
srcs: ["arm.cpp"],
},
x86:{
srcs: ["x86.cpp"],
},
},
}

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο