Uvoľnenie montážneho systému Meson 0.58. Projekt na vytvorenie implementácie Meson v jazyku C

Bolo zverejnené vydanie zostavovacieho systému Meson 0.58, ktorý sa používa na zostavovanie projektov ako X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME a GTK. Kód Meson je napísaný v jazyku Python a je licencovaný pod licenciou Apache 2.0.

Kľúčovým cieľom vývoja spoločnosti Meson je poskytnúť vysokorýchlostný proces montáže v kombinácii s pohodlím a jednoduchosťou použitia. Namiesto make zostava štandardne používa súpravu nástrojov Ninja, ale možno použiť aj iné backendy, ako napríklad xcode a VisualStudio. Systém má vstavaný obslužný program závislostí na viacerých platformách, ktorý vám umožňuje používať Meson na zostavovanie balíkov pre distribúcie. Pravidlá zostavovania sú nastavené v zjednodušenom doménovo špecifickom jazyku, sú dobre čitateľné a zrozumiteľné pre používateľa (podľa predstavy autorov by mal vývojár venovať písaním pravidiel minimum času).

Podporuje sa krížová kompilácia a budovanie na Linuxe, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS a Windows pomocou GCC, Clang, Visual Studio a ďalších kompilátorov. Je možné vytvárať projekty v rôznych programovacích jazykoch, vrátane C, C++, Fortran, Java a Rust. Podporovaný je režim prírastkového zostavovania, v ktorom sa prestavujú iba komponenty, ktoré priamo súvisia so zmenami vykonanými od poslednej zostavy. Meson je možné použiť na generovanie opakovateľných zostavení, kde spustenie zostavy v rôznych prostrediach vedie k úplne identickým spustiteľným súborom.

Hlavné inovácie 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).

Zdroj: opennet.ru

Pridať komentár