Έκδοση συστήματος Meson build 1.0

Δημοσιεύτηκε η κυκλοφορία του συστήματος κατασκευής Meson 1.0.0, το οποίο χρησιμοποιείται για τη δημιουργία έργων όπως X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME και GTK. Ο κώδικας Meson είναι γραμμένος σε Python και έχει άδεια χρήσης σύμφωνα με την άδεια Apache 2.0.

Ο βασικός στόχος ανάπτυξης του Meson είναι να παρέχει μια διαδικασία συναρμολόγησης υψηλής ταχύτητας σε συνδυασμό με την ευκολία και την ευκολία χρήσης. Αντί για make, η έκδοση χρησιμοποιεί το κιτ εργαλείων Ninja από προεπιλογή, αλλά μπορούν επίσης να χρησιμοποιηθούν και άλλα backend όπως το xcode και το VisualStudio. Το σύστημα διαθέτει έναν ενσωματωμένο χειριστή εξάρτησης πολλαπλών πλατφορμών που σας επιτρέπει να χρησιμοποιείτε το Meson για τη δημιουργία πακέτων για διανομές. Οι κανόνες συναρμολόγησης ορίζονται σε μια απλοποιημένη γλώσσα για συγκεκριμένο τομέα, είναι ευανάγνωστοι και κατανοητοί από τον χρήστη (σύμφωνα με την ιδέα των δημιουργών, ο προγραμματιστής πρέπει να αφιερώσει ελάχιστο χρόνο για τη σύνταξη κανόνων).

Υποστηρίζεται πολλαπλή μεταγλώττιση και δημιουργία σε Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS και Windows χρησιμοποιώντας GCC, Clang, Visual Studio και άλλους μεταγλωττιστές. Είναι δυνατή η κατασκευή έργων σε διάφορες γλώσσες προγραμματισμού, συμπεριλαμβανομένων των C, C++, Fortran, Java και Rust. Υποστηρίζεται μια σταδιακή λειτουργία δημιουργίας, στην οποία αναδημιουργούνται μόνο τα στοιχεία που σχετίζονται άμεσα με τις αλλαγές που έγιναν από την τελευταία έκδοση. Το Meson μπορεί να χρησιμοποιηθεί για τη δημιουργία επαναλήψεων εκδόσεων, όπου η εκτέλεση του build σε διαφορετικά περιβάλλοντα οδηγεί σε εντελώς πανομοιότυπα εκτελέσιμα.

Κύριες καινοτομίες του Meson 1.0:

  • Η ενότητα για την κατασκευή έργων στη γλώσσα Rust έχει δηλωθεί σταθερή. Αυτή η ενότητα χρησιμοποιείται στο έργο Mesa για τη δημιουργία στοιχείων γραμμένων σε Rust.
  • Υποστηριζόμενη από τις περισσότερες λειτουργίες ελέγχου μεταγλωττιστή, η επιλογή προθέματος υλοποιεί τη δυνατότητα χειρισμού πινάκων εκτός από συμβολοσειρές. Για παράδειγμα, μπορείτε τώρα να καθορίσετε: cc.check_header('GL/wglew.h', πρόθεμα : ['#include ', '#περιλαμβάνω '])
  • Ένα νέο όρισμα "--workdir" προστέθηκε για να σας επιτρέψει να παρακάμψετε τον κατάλογο εργασίας. Για παράδειγμα, για να χρησιμοποιήσετε τον τρέχοντα κατάλογο αντί για τον κατάλογο εργασίας, μπορείτε να εκτελέσετε: meson devenv -C builddir --workdir .
  • Προτείνονται νέοι τελεστές "in" και "not in" για τον προσδιορισμό της εμφάνισης μιας υποσυμβολοσειράς σε μια συμβολοσειρά, παρόμοια με τον προηγουμένως διαθέσιμο έλεγχο για την εμφάνιση ενός στοιχείου σε έναν πίνακα ή λεξικό. Για παράδειγμα: fs = import('fs') if 'something' in fs.read('somefile') # True endif
  • Προστέθηκε η επιλογή "warning-level=Everything" για ενεργοποίηση της εξόδου όλων των διαθέσιμων προειδοποιήσεων μεταγλωττιστή (σε χρήση clang και MSVC -Weeverything και /Wall και στο GCC περιλαμβάνονται ξεχωριστές προειδοποιήσεις, που αντιστοιχούν περίπου στη λειτουργία -Weverything στο clang).
  • Η μέθοδος rust.bindgen υλοποιεί τη δυνατότητα επεξεργασίας του ορίσματος "εξαρτήσεις" για να περάσει μονοπάτια σε εξαρτήσεις που θα πρέπει να επεξεργαστούν από τον μεταγλωττιστή.
  • Η συνάρτηση java.generate_native_headers έχει καταργηθεί και μετονομαστεί σε java.native_headers για να ταιριάζει με το γενικό στυλ ονομασίας συναρτήσεων του Meson.

Πηγή: opennet.ru

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