Το Meson είναι ένα εργαλείο λογισμικού για την αυτοματοποίηση της κατασκευής λογισμικού. Είναι δωρεάν και ανοιχτού κώδικα γραμμένο σε Python.
Πρόσφατα ανακοινώθηκε η κυκλοφορία της νέας έκδοσης του συστήματος δημιουργίας Meson 1.4 . Αυτή η έκδοση διαθέτει βελτιωμένη υποστήριξη για ορισμένες λειτουργίες της ενότητας FS, καθώς και βελτιώσεις συμβατότητας, νέες δυνατότητες και πολλά άλλα.
Για όσους δεν είναι εξοικειωμένοι με το Meson, είναι ένα σύστημα κατασκευής που χρησιμοποιείται από εξέχοντα έργα όπως το X.Org Server, το Mesa, το Lighttpd, το systemd, το GStreamer, το Wayland, το GNOME και το GTK. Ο κύριος στόχος του είναι να παρέχει μια γρήγορη και φιλική προς το χρήστη διαδικασία κατασκευής. Χρησιμοποιεί το Ninja toolkit από προεπιλογή, αλλά είναι επίσης συμβατό με άλλα backends όπως το Xcode και το Visual Studio.
Αυτό το σύστημα διαθέτει έναν ενσωματωμένο διαχειριστή εξαρτήσεων για όλες τις πλατφόρμες που απλοποιεί τη δημιουργία πακέτων για διανομές. Οι κανόνες μεταγλώττισης ορίζονται σε μια συγκεκριμένη, ευανάγνωστη γλώσσα, ελαχιστοποιώντας τον χρόνο που απαιτείται για τη συγγραφή τους.
Το Meson υποστηρίζει έργα κατασκευής σε πολλές γλώσσες όπως C, C++, Fortran, Java και Rust και προσφέρει μια σταδιακή λειτουργία κατασκευής που αναδομεί μόνο τα στοιχεία που επηρεάζονται από αλλαγές από την τελευταία έκδοση. Επιπλέον, το Meson μπορεί να δημιουργήσει επαναλαμβανόμενες εκδόσεις, διασφαλίζοντας ότι η εκτέλεση της έκδοσης σε διαφορετικά περιβάλλοντα παράγει εντελώς πανομοιότυπα εκτελέσιμα.
Οι κύριες καινοτομίες του Meson 1.4
Αυτή η νέα έκδοση του Meson 1.4 υπογραμμίζει την προστιθέμενη υποστήριξη για την ενότητα FS, η οποία πλέον υποστηρίζει αντικείμενα-στόχους μεταγλώττισης build_tgt και custom_tgt, καθώς και έναν δείκτη-στόχο μεταγλώττισης (custom_idx) στις συναρτήσεις fs.name, fs.parent, fs.replace_suffix και fs.stem.
Μια άλλη αξιοσημείωτη αλλαγή σε αυτήν τη νέα έκδοση είναι ότι το Meson μπορεί πλέον να διαβάσει την έκδοση του έργου από υποέργα που βασίζονται στο CMake. Αυτό διασφαλίζει ότι οι περιορισμοί έκδοσης επαληθεύονται σωστά κατά την πρόσβαση σε ένα υποέργο CMake.
Επιπλέον, το όρισμα `preserve_paths` έχει πλέον προστεθεί στις συναρτήσεις `compile_ui`, `compile_moc` και preprocessing των ενοτήτων `qt4`, `qt5` και `qt6` για να επιλέξετε την επιλογή δημιουργίας της δομής καταλόγου για τα αρχεία που γράφονται.
Αξίζει επίσης να σημειωθεί ότι η υποστήριξη Clang προστέθηκε στο stldebug όταν είναι ενεργοποιημένο το debugstl, η μέθοδος unset() εισήχθη στο αντικείμενο env και η μέθοδος full_path() προστέθηκε στο αντικείμενο File για να ληφθεί η πλήρης διαδρομή προς το αρχείο.
Έχει προστεθεί υποστήριξη για το εργαλείο numpy-config και το pkg-config ως νέες προσαρμοσμένες εξαρτήσεις. Αυτό είναι διαθέσιμο από την έκδοση NumPy 2.0.0. Η υποστήριξη για το numpy-config θα λειτουργεί αυτόματα μόλις εγκατασταθεί το NumPy. Ωστόσο, το αρχείο pkg-config βρίσκεται μέσα στα πακέτα ιστότοπου Python, πράγμα που σημαίνει ότι δεν μπορεί να χρησιμοποιηθεί αμέσως χωρίς να ρυθμιστεί το PKG_CONFIG_PATH.
Άλλες αξιοσημείωτες αλλαγές σε αυτήν τη νέα έκδοση περιλαμβάνουν:
- Δυνατότητα ελέγχου των ελέγχων διεκδίκησης (GLIBCXX_ASSERTIONS) σε C++ stdlib μέσω διαμόρφωσης ντεσφαλμάτων.
- Προστέθηκε το όρισμα λέξης-κλειδιού save_pathsun στις συναρτήσεις της μονάδας qt
- Είναι πλέον δυνατός ο καθορισμός εξαρτημένων στόχων με το εξαρτάται: for compiler.preprocess(). Αυτοί οι στόχοι πρέπει να κατασκευαστούν πριν ξεκινήσει η προεπεξεργασία.
- Η γεννήτρια σύνδεσης bindgen υποστηρίζει πλέον ευρετικά Meson για τον προσδιορισμό των αρχείων κεφαλίδας C++.
- Προστέθηκε η δυνατότητα παράκαμψης ρυθμίσεων γλώσσας για το bindgen.
- Οι δοκιμές αποτυγχάνουν πλέον από προεπιλογή αφού αντιμετωπίσουν σφάλματα κατά την εκτέλεση απολυμαντικών όπως το MemorySanitizer.
- Προστέθηκε υποστήριξη για τον μεταγλωττιστή Texas Instruments C/C++ για την οικογένεια CPU C6000.
Τέλος, αν ενδιαφέρεστε να μάθετε περισσότερα, μπορείτε να βρείτε τις λεπτομέρειες στον παρακάτω σύνδεσμο.
Πώς να εγκαταστήσετε το Meson σε Linux;
Για όσους ενδιαφέρονται να μπορούν να εγκαταστήσουν αυτό το σύστημα κατασκευής στο σύστημά τους, μπορούν να το κάνουν ακολουθώντας τις οδηγίες που κοινοποιούμε παρακάτω.
Θα πρέπει να γνωρίζουν ότι το Meson είναι διαθέσιμο στο PyPi, επομένως μπορεί να εγκατασταθεί με την εντολή:
pip3 install meson
Ως σημείωση, θα πρέπει να γνωρίζετε ότι η ακριβής εντολή για να πληκτρολογήσετε για να εγκαταστήσετε το pip μπορεί να διαφέρει μεταξύ των συστημάτων, επομένως συνιστάται να χρησιμοποιείτε την έκδοση του pip Python 3.