Το Meson είναι ένα εργαλείο λογισμικού για την αυτοματοποίηση της κατασκευής λογισμικού. Είναι δωρεάν και ανοιχτού κώδικα γραμμένο σε Python.
Η εκτόξευση του νέα έκδοση του Meson build system 1.0.0, το οποίο έρχεται με νέα επιχειρήματα, καθώς και τη σταθερότητα στη σύνταξη έργων στο Rust, μεταξύ άλλων.
Για όσους δεν γνωρίζουν για τον Meson, θα πρέπει να το γνωρίζουν αυτό το σύστημα κατασκευής χρησιμοποιείται για τη μεταγλώττιση μεγάλων έργων όπως X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME και GTK.
Ο βασικός στόχος ανάπτυξης της Meson είναι να παρέχει μια διαδικασία συλλογής υψηλής ταχύτητας σε συνδυασμό με ευκολία και ευκολία στη χρήση. Αντί να το κάνει, η έκδοση χρησιμοποιεί το Ninja Toolkit από προεπιλογή, αλλά μπορούν επίσης να χρησιμοποιηθούν και άλλα backend όπως το xcode και το VisualStudio.
Το σύστημα διαθέτει ενσωματωμένο χειριστή εξάρτησης μεταξύ πλατφορμών που σας επιτρέπει να χρησιμοποιήσετε το Meson για τη δημιουργία πακέτων για διανομές. Οι κανόνες συλλογής δηλώνονται σε μια απλοποιημένη γλώσσα για συγκεκριμένο τομέα, είναι ευανάγνωστοι και κατανοητοί από τον χρήστη (σύμφωνα με την ιδέα των συγγραφέων, ο προγραμματιστής θα πρέπει να αφιερώσει ελάχιστο χρόνο για τη σύνταξη κανόνων).
Se υποστηρίζει cross compilation και μεταγλώττιση σε Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS και Windows χρησιμοποιώντας GCC, Clang, Visual Studio και άλλους μεταγλωττιστές.
Είναι δυνατή η κατασκευή έργων σε πολλές γλώσσες προγραμματισμού, συμπεριλαμβανομένων των C, C++, Fortran, Java και Rust. Υποστηρίζεται μια σταδιακή λειτουργία δημιουργίας, στην οποία αναδημιουργούνται μόνο τα στοιχεία που σχετίζονται άμεσα με τις αλλαγές που έγιναν από την τελευταία έκδοση.
Το Meson μπορεί να χρησιμοποιηθεί για τη δημιουργία επαναλήψεων εκδόσεων, όπου η εκτέλεση του build σε διαφορετικά περιβάλλοντα οδηγεί σε εντελώς πανομοιότυπα εκτελέσιμα.
Οι κύριες καινοτομίες του Meson 1.0
Σε αυτή τη νέα κυκλοφορία του Meson 1.0 τονίζεται ότι Η ενότητα για την κατασκευή έργων στη γλώσσα Rust έχει δηλωθεί σταθερή. Αυτή η ενότητα χρησιμοποιείται στο έργο Mesa για τη δημιουργία στοιχείων γραμμένων σε Rust.
Υποστηριζόμενη από τις περισσότερες συναρτήσεις ελέγχου μεταγλωττιστή, η επιλογή προθέματος υλοποιεί τη δυνατότητα χειρισμού πινάκων εκτός από συμβολοσειρές.
Μια άλλη από τις αλλαγές που ξεχωρίζει από αυτό το λανσάρισμα είναι ότι προτείνουν νέοι τελεστές "in" και "not in" για τον προσδιορισμό της εμφάνισης μιας υποσυμβολοσειράς σε μια συμβολοσειρά, Παρόμοια με τον προηγουμένως διαθέσιμο έλεγχο για την εμφάνιση ενός στοιχείου σε έναν πίνακα ή λεξικό.
Εκτός από αυτό, μπορούμε επίσης να το βρούμε προστέθηκε επιλογή «warning-level=όλα» για να ενεργοποιήσετε την έξοδο όλων των διαθέσιμων προειδοποιήσεων μεταγλωττιστή (Η χρήση Clang και MSVC -Weverything και /Wall, και το GCC περιλαμβάνει ξεχωριστές προειδοποιήσεις, που αντιστοιχούν κατά προσέγγιση στη λειτουργία clang -Weverything.)
Αξίζει επίσης να σημειωθεί ότι α νέο όρισμα "–workdir" για να σας επιτρέψει να παρακάμψετε τον κατάλογο εργασίας. Για παράδειγμα, για να χρησιμοποιήσετε τον τρέχοντα κατάλογο αντί για τον κατάλογο εργασίας.
Η μέθοδος rust.bindgen υλοποιεί τη δυνατότητα επεξεργασίας του ορίσματος "εξαρτήσεις" για να περάσει μονοπάτια σε εξαρτήσεις που θα υποστούν επεξεργασία από τον μεταγλωττιστή και η συνάρτηση java.generate_native_headers έχει καταργηθεί και μετονομαστεί σε java.native_headers για να ταιριάζει με το γενικό στυλ ονομασίας συναρτήσεων του Meson.
Από την άλλη, αναφέρεται επίσης ότι τώρα κατά τη διασταυρούμενη μεταγλώττιση, το περιβάλλον προγραμματιστή ορίζει όλες τις μεταβλητές περιβάλλοντος για το μηχάνημα HOST. Τώρα ορίζει επίσης το QEMU_LD_PREFIX και την τιμή sys_root του crossfile εάν έχει οριστεί η ιδιότητα. Αυτό σημαίνει ότι τα εκτελέσιμα με διασταυρούμενη μεταγλώττιση μπορούν συχνά να εκτελούνται με διαφάνεια στη μηχανή κατασκευής, για παράδειγμα κατά τη διασταυρούμενη μεταγλώττιση σε aarch64 linux από x86_64 linux.
Τέλος, εάν ενδιαφέρεστε να μάθετε περισσότερα για αυτό, μπορείτε να συμβουλευτείτε τις λεπτομέρειες στο παρακάτω σύνδεσμο.
Πώς να εγκαταστήσετε το Meson σε Linux;
Για όσους ενδιαφέρονται να μπορούν να εγκαταστήσουν αυτό το σύστημα κατασκευής στο σύστημά τους, μπορούν να το κάνουν ακολουθώντας τις οδηγίες που κοινοποιούμε παρακάτω.
Θα πρέπει να γνωρίζουν ότι το Meson είναι διαθέσιμο στο PyPi, επομένως μπορεί να εγκατασταθεί με την εντολή:
pip3 install meson
Ως σημείωση, θα πρέπει να γνωρίζετε ότι η ακριβής εντολή για να πληκτρολογήσετε για να εγκαταστήσετε το pip μπορεί να διαφέρει μεταξύ των συστημάτων, επομένως συνιστάται να χρησιμοποιείτε την έκδοση του pip Python 3.