Κυκλοφορία του συστήματος συναρμολόγησης Meson 0.58. Έργο για τη δημιουργία μιας υλοποίησης του Meson σε γλώσσα C

Δημοσιεύτηκε η κυκλοφορία του συστήματος κατασκευής Meson 0.58, το οποίο χρησιμοποιείται για τη δημιουργία έργων όπως 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 0.58:

  • В языке Meson реализованы встроенные операции форматирования строк. Вместо вызова метода format теперь можно подставлять значения напрямую, например, вместо «‘A string @0@ to be formatted @1@’.format(n, m)» можно указывать сразу «f’A string @n@ to be formatted @m@'».
  • В строковые объекты добавлен метод «replace» для выполнения операции замены одной подстроки на другую, например, «s = s.replace(‘aaa’, ‘bbb’)».
  • Добавлена функция «range(start, stop[, step])» для возврата объекта, который может применяться в цикле «foreach», например «foreach i : range(15)».
  • Реализован метод meson.add_devenv(), позволяющий добавить объект environment() для установки переменных окружения во время использования команды «meson devenv», например, для задания переменной окружения с путём к каталогу с плагинами.
  • Для окружений разработки предложена новая команда «meson devenv -C builddir [<команда>], дающая возможность запустить команду в окружении, настроенном для запуска проектов из сборочного каталога (без установки).
  • По умолчанию прекращена передача параметра «-pipe» при запуске всех поддерживаемых компиляторов.
  • Разрешён вызов meson.add_dist_script() из подпроектов.
  • Предоставлена возможность многократного запуска методов append() и prepend() для одного и того же объекта environment().
  • В функции error() разрешено указание более одного аргумента с разделением пробелом (по аналогии с warning() и message()).
  • Добавлен параметр «—skip-subprojects» для выборочного пропуска установки подпроектов.

Отдельно можно отметить проект Boson, нацеленный на создание переносимой и простой реализации языка сборочных сценариев Meson, написанной на языке Си вместо Python. Проект пока находится на начальном этапе развития и пока не готов для полноценной сборки рабочих проектов. Код распространяется под лицензией GPLv3 (оригинальный Meson на Python поставляется под лицензией Apache 2.0).

Πηγή: opennet.ru

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