Llançament del sistema de muntatge Meson 0.58. Projecte per crear una implementació de Meson en llenguatge C

S'ha publicat el llançament del sistema de compilació Meson 0.58, que s'utilitza per crear projectes com ara X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME i GTK. El codi Meson està escrit en Python i té la llicència d'Apache 2.0.

L'objectiu clau de desenvolupament de Meson és proporcionar un procés de muntatge d'alta velocitat combinat amb comoditat i facilitat d'ús. En lloc de fer, la compilació utilitza el conjunt d'eines Ninja de manera predeterminada, però també es poden utilitzar altres backends com xcode i VisualStudio. El sistema té un gestor de dependències multiplataforma integrat que us permet utilitzar Meson per crear paquets per a distribucions. Les regles de muntatge s'estableixen en un llenguatge simplificat específic del domini, són ben llegibles i comprensibles per a l'usuari (segons la idea dels autors, el desenvolupador hauria de dedicar un mínim de temps a escriure regles).

S'admet la compilació creuada i la creació a Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS i Windows mitjançant GCC, Clang, Visual Studio i altres compiladors. És possible construir projectes en diversos llenguatges de programació, inclosos C, C++, Fortran, Java i Rust. S'admet un mode de construcció incremental, en el qual només es reconstrueixen els components que estan directament relacionats amb els canvis fets des de l'última compilació. Meson es pot utilitzar per generar compilacions repetibles, on executar la compilació en diferents entorns dóna com a resultat executables completament idèntics.

Principals innovacions de 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).

Font: opennet.ru

Afegeix comentari