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

Δημοσιεύτηκε η κυκλοφορία του συστήματος κατασκευής Meson 1.1.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.1:

  • Ένα νέο όρισμα "objects:" προστέθηκε στο declare_dependency() για να επισυνάψετε αντικείμενα απευθείας σε εκτελέσιμα ως εσωτερικές εξαρτήσεις που δεν απαιτούν link_who.
  • Η εντολή "meson devenv --dump" έχει την προαιρετική δυνατότητα να καθορίσει ένα αρχείο για να γράψει μεταβλητές περιβάλλοντος, αντί για έξοδο στην τυπική ροή εξόδου.
  • Προστέθηκαν οι μέθοδοι FeatureOption.enable_if και FeatureOption.disable_if για να διευκολύνεται η δημιουργία συνθηκών κατά την προετοιμασία για τη μετάδοση παραμέτρων στη συνάρτηση dependency(). opt = get_option('feature').disable_if(not foo, error_message : 'Δεν είναι δυνατή η ενεργοποίηση της δυνατότητας όταν το foo δεν είναι επίσης ενεργοποιημένο') dep = εξάρτηση ('foo', απαιτείται : opt)
  • Επιτρέπεται η μετάδοση αντικειμένων που δημιουργούνται μεταξύ των ορισμάτων "αντικείμενα:".
  • Η λειτουργία έργου υποστηρίζει την εγκατάσταση αρχείων με πληροφορίες σχετικά με τις άδειες χρήσης έργου.
  • Η εκτέλεση της "εγκατάστασης sudo meson" διασφαλίζει την επαναφορά των προνομίων κατά την ανακατασκευή για πλατφόρμες-στόχους.
  • Η εντολή "meson install" παρέχει τη δυνατότητα να καθορίσετε έναν ξεχωριστό χειριστή για τη λήψη δικαιωμάτων root (για παράδειγμα, μπορείτε να επιλέξετε polkit, sudo, opendoas ή $MESON_ROOT_CMD). Η εκτέλεση του "meson install" σε μη διαδραστική λειτουργία δεν επιχειρεί πλέον να αυξήσει τα προνόμια.
  • Προστέθηκε υποστήριξη για επιλογές ανάγνωσης από το αρχείο meson.options αντί για meson_options.txt.
  • Παρέχεται ανακατεύθυνση στο stderr της εξόδου πληροφοριών σχετικά με την πρόοδο της ενδοσκόπησης.
  • Ένα νέο backend "none" (--backend=none) προστέθηκε για τη δημιουργία έργων που έχουν μόνο κανόνες εγκατάστασης και όχι κανόνες κατασκευής.
  • Μια νέα εξάρτηση pybind11 προστέθηκε για να λειτουργήσει η εξάρτηση ('pybind11') με pkg-config και cmake χωρίς τη χρήση του σεναρίου pybind11-config.
  • Οι επιλογές "--reconfigure" και "--wipe" (meson setup --reconfigure builddir and meson setup --wipe builddir ) επιτρέπονται με ένα κενό builddir.
  • Η meson.add_install_script() πρόσθεσε υποστήριξη για τη λέξη-κλειδί dry_run, η οποία σας επιτρέπει να εκτελείτε τα δικά σας σενάρια εγκατάστασης όταν καλείτε "meson install --dry-run".

Πηγή: opennet.ru

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