Баровардани системаи васлкунии Meson 0.58. Лоиҳа барои эҷоди татбиқи Meson дар забони C

Нашри системаи сохтани Meson 0.58 нашр шуд, ки барои сохтани лоиҳаҳо ба монанди X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ва GTK истифода мешавад. Рамзи Meson дар Python навишта шудааст ва тибқи иҷозатномаи Apache 2.0 иҷозатнома дорад.

Ҳадафи асосии рушди Meson таъмини раванди тези васлкунӣ дар якҷоягӣ бо роҳат ва осонии истифода мебошад. Ба ҷои сохтан, сохтан ба таври нобаёнӣ асбоби Ninja -ро истифода мебарад, аммо дигар пуштибонҳо ба монанди xcode ва VisualStudio низ метавонанд истифода шаванд. Система дорои коркарди вобастагии бисёрплатформаи дарунсохт мебошад, ки ба шумо имкон медиҳад Meson-ро барои сохтани бастаҳо барои тақсимот истифода баред. Қоидаҳои ассамблея бо забони соддакардашудаи мушаххаси домен муқаррар карда шудаанд, онҳо барои корбар хуб хондан ва фаҳмо мебошанд (мувофиқи идеяи муаллифон, таҳиякунанда бояд ҳадди аққал вақти навиштани қоидаҳои навиштанро сарф кунад).

Crosscompilyasiya ва сохтан дар Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS ва Windows бо истифода аз GCC, Clang, Visual Studio ва дигар компиляторҳо дастгирӣ карда мешавад. Лоиҳаҳоро бо забонҳои гуногуни барномасозӣ, аз ҷумла C, C++, Fortran, Java ва Rust сохтан мумкин аст. Реҷаи афзояндаи сохтмон дастгирӣ карда мешавад, ки дар он танҳо ҷузъҳое, ки мустақиман бо тағирот аз замони охирин сохташуда алоқаманданд, аз нав сохта мешаванд. Месонро барои тавлиди сохторҳои такроршаванда истифода бурдан мумкин аст, ки дар он ҷо кор кардани сохтмон дар муҳитҳои гуногун боиси иҷрошавандаҳои комилан якхела мегардад.

Навовариҳои асосии 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

Илова Эзоҳ