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

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

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

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

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

  • Προστέθηκε υποστήριξη για διαφανή δημιουργία υπαρχόντων έργων που χρησιμοποιούν σενάρια κατασκευής CMake. Το Meson μπορεί τώρα να δημιουργήσει απευθείας απλά υποέργα (όπως μεμονωμένες βιβλιοθήκες) χρησιμοποιώντας τη λειτουργική μονάδα CMake, παρόμοια με τυπικά υποέργα (συμπεριλαμβανομένων των υποέργων CMake μπορούν να τοποθετηθούν στον κατάλογο υποέργων).
  • Για όλους τους χρησιμοποιούμενους μεταγλωττιστές, περιλαμβάνεται προκαταρκτική δοκιμή μέσω της συναρμολόγησης και της εκτέλεσης απλών δοκιμαστικών αρχείων (έλεγχος λογικής), που δεν περιορίζεται στη δοκιμή σημαιών που καθορίζονται από το χρήστη για cross-compilers (από εδώ και στο εξής, ελέγχονται και οι εγγενείς μεταγλωττιστές της τρέχουσας πλατφόρμας) .
  • Προστέθηκε η δυνατότητα ορισμού επιλογών γραμμής εντολών που χρησιμοποιούνται κατά τη διασταυρούμενη μεταγλώττιση, με δέσμευση καθορίζοντας ένα πρόθεμα πλατφόρμας πριν από την επιλογή. Προηγουμένως, οι επιλογές της γραμμής εντολών κάλυπταν μόνο εγγενείς εκδόσεις και δεν μπορούσαν να καθοριστούν για πολλαπλή μεταγλώττιση. Οι επιλογές γραμμής εντολών ισχύουν πλέον ανεξάρτητα από το εάν δημιουργείτε εγγενή ή πολλαπλή μεταγλώττιση, διασφαλίζοντας ότι οι εγγενείς και οι πολλαπλές εκδόσεις παράγουν πανομοιότυπα αποτελέσματα.
  • Προστέθηκε η δυνατότητα καθορισμού της σημαίας "--cross-file" περισσότερες από μία φορές στη γραμμή εντολών για τη λίστα πολλαπλών διασταυρούμενων αρχείων.
  • Προστέθηκε υποστήριξη για τον μεταγλωττιστή ICL (Intel C/C++ Compiler) για την πλατφόρμα Windows (ICL.EXE και ifort).
  • Προστέθηκε υποστήριξη αρχικής εργαλειοθήκης για επεξεργαστές Xtensa (xt-xcc, xt-xc++, xt-nm).
  • Η μέθοδος "get_variable" έχει προστεθεί στο αντικείμενο "dependency", το οποίο σας επιτρέπει να λάβετε την τιμή μιας μεταβλητής χωρίς να λάβετε υπόψη τον τύπο της τρέχουσας εξάρτησης (για παράδειγμα, dep.get_variable(pkg-config : 'var- όνομα', cmake : 'COP_VAR_NAME));
  • Προστέθηκε ένα νέο όρισμα επιλογών συναρμολόγησης προορισμού, "link_language", για να προσδιορίσει ρητά τη γλώσσα που χρησιμοποιείται κατά την κλήση του συνδέσμου. Για παράδειγμα, ένα κύριο πρόγραμμα Fortran θα μπορούσε να καλέσει τον κώδικα C/C++, ο οποίος θα επέλεγε αυτόματα το C/C++ όταν θα έπρεπε να χρησιμοποιηθεί ο σύνδεσμος Fortran.
  • Ο χειρισμός των σημαιών προεπεξεργαστή CPPFLAGS έχει αλλάξει. Ενώ η Meson αποθήκευε προηγουμένως CPPFLAGS και σημαίες μεταγλώττισης για συγκεκριμένες γλώσσες (CFLAGS, CXXFLAGS), τώρα επεξεργάζονται αδιαχώριστα και οι σημαίες που αναφέρονται στο CPPFLAGS χρησιμοποιούνται ως άλλη πηγή σημαιών μεταγλώττισης για γλώσσες που τις υποστηρίζουν.
  • Η έξοδος των custom_target και custom_target[i] μπορεί τώρα να χρησιμοποιηθεί ως ορίσματα στις λειτουργίες link_with και link_whole.
  • Οι γεννήτριες έχουν πλέον τη δυνατότητα να καθορίσουν πρόσθετες εξαρτήσεις χρησιμοποιώντας την επιλογή "εξαρτάται" (για παράδειγμα, generator(program_runner, output: ['@[προστασία μέσω email]'], εξαρτάται: exe));
  • Προστέθηκε μια στατική επιλογή στο find_library για να επιτρέπεται στην αναζήτηση να περιλαμβάνει μόνο στατικά συνδεδεμένες βιβλιοθήκες.
  • Για το python.find_installation, έχει προστεθεί η δυνατότητα προσδιορισμού της παρουσίας μιας δεδομένης λειτουργικής μονάδας Python για μια συγκεκριμένη έκδοση της Python.
  • Προστέθηκε νέα μονάδα unstable-kconfig για ανάλυση αρχείων kconfig.
  • Προστέθηκε μια νέα εντολή "subprojects foreach", η οποία παίρνει μια εντολή με ορίσματα και την εκτελεί σε όλους τους καταλόγους υποέργων.

Πηγή: opennet.ru

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