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

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

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

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

Ο κύριος καινοτομίες Meson 0.52:

  • Προστέθηκε πειραματική υποστήριξη για το Webassembly χρησιμοποιώντας το Emscripten ως μεταγλωττιστή.
  • Η υποστήριξη για τις πλατφόρμες Illumos και Solaris έχει βελτιωθεί σημαντικά και έχει τεθεί σε κατάσταση λειτουργίας.
  • Διασφαλίζει ότι τα σενάρια διεθνοποίησης που βασίζονται σε gettext αγνοούνται εάν το σύστημα δεν έχει εγκατεστημένο το κιτ εργαλείων gettext (προηγουμένως εμφανιζόταν ένα σφάλμα κατά τη χρήση της μονάδας i18n σε συστήματα χωρίς λήψη κειμένου).
  • Βελτιωμένη υποστήριξη για στατικές βιβλιοθήκες. Πολλά προβλήματα κατά τη χρήση μη εγκατεστημένων στατικών βιβλιοθηκών έχουν επιλυθεί.
  • Προστέθηκε η δυνατότητα χρήσης λεξικών για την εκχώρηση μεταβλητών περιβάλλοντος. Κατά την κλήση του περιβάλλοντος(), το πρώτο στοιχείο μπορεί τώρα να καθοριστεί ως λεξικό στο οποίο οι μεταβλητές περιβάλλοντος ορίζονται σε μορφή κλειδιού/τιμής. Αυτές οι μεταβλητές θα μεταφερθούν στο περιβάλλον_αντικείμενο σαν να είχαν οριστεί μεμονωμένα μέσω της μεθόδου set(). Τα λεξικά μπορούν επίσης τώρα να περάσουν σε διάφορες συναρτήσεις που υποστηρίζουν ένα όρισμα "env".
  • Προστέθηκε η συνάρτηση "runtarget alias_target(target_name, dep1, ...)" που δημιουργεί έναν νέο στόχο κατασκευής πρώτου επιπέδου που μπορεί να κληθεί με το επιλεγμένο backend κατασκευής (π.χ. "ninja target_name"). Αυτός ο στόχος κατασκευής δεν εκτελεί εντολές, αλλά διασφαλίζει ότι έχουν δημιουργηθεί όλες οι εξαρτήσεις.
  • Ενεργοποιήθηκε η αυτόματη ρύθμιση της μεταβλητής περιβάλλοντος PKG_CONFIG_SYSROOT_DIR κατά τη διασταυρούμενη μεταγλώττιση, εάν υπάρχει ρύθμιση sys_root στην ενότητα "[ιδιότητες]".
  • Προστέθηκε η επιλογή "--gdb-path" για τον προσδιορισμό της διαδρομής προς το πρόγραμμα εντοπισμού σφαλμάτων GDB κατά τον καθορισμό της επιλογής "--gdb testname" για εκτέλεση του GDB με το καθορισμένο σενάριο δοκιμής.
  • Προστέθηκε αυτόματη ανίχνευση του χτύπημα-τακτοποιημένου στόχου κατασκευής για να τρέχει αυτό το linter με όλα τα αρχεία προέλευσης. Ο στόχος δημιουργείται εάν το clang-tidy είναι διαθέσιμο στο σύστημα και το αρχείο ".clang-tidy" (ή "_clang-tidy") έχει οριστεί στη ρίζα του έργου.
  • Προστέθηκε εξάρτηση ('μπλοκ') για χρήση στην επέκταση Clang Μπλοκ;
  • Οι προβολές σύνδεσης και μεταγλωττιστής διαχωρίζονται, επιτρέποντας τη χρήση διαφορετικών συνδυασμών μεταγλωττιστών και συνδέσμων.
  • Προστέθηκε η μέθοδος all_dependencies() στα αντικείμενα SourceSet εκτός από τη μέθοδο all_sources().
  • Στο run_project_tests.py, η επιλογή "--μόνο" έχει προστεθεί σε δοκιμές επιλεκτικής εκτέλεσης (για παράδειγμα, "python run_project_tests.py —μόνο fortran python3").
  • Η συνάρτηση find_program() έχει πλέον τη δυνατότητα αναζήτησης μόνο για τις απαιτούμενες εκδόσεις ενός προγράμματος (η έκδοση προσδιορίζεται εκτελώντας το πρόγραμμα με την επιλογή "-version").
  • Για τον έλεγχο της εξαγωγής συμβόλων, η επιλογή vs_module_defs έχει προστεθεί στη συνάρτηση shared_module(), παρόμοια με την shared_library();
  • Η λειτουργική μονάδα kconfig έχει επεκταθεί για να υποστηρίζει τη configure_file() για τον καθορισμό ενός αρχείου εισόδου.
  • Προστέθηκε η δυνατότητα καθορισμού πολλαπλών αρχείων εισόδου για χειριστές "command:" στο configure_file();
  • Η εντολή "dist" για τη δημιουργία ενός αρχείου έχει μετακινηθεί στην κατηγορία των εντολών πρώτου επιπέδου (προηγουμένως η εντολή ήταν συνδεδεμένη με το ninja). Προστέθηκε η επιλογή "--formats" για τον καθορισμό των τύπων αρχείων που θα δημιουργηθούν (για παράδειγμα,
    "meson dist -formats=xztar,zip").

Πηγή: opennet.ru

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