Meson — это программный инструмент для автоматизации создания программного обеспечения. Это бесплатное приложение с открытым исходным кодом, написанное на Python.
В публикации было объявлено о выпуске новой версии системы сборки Meson 1.0.0 , которая, помимо прочего, включает в себя новые функции, а также повышение стабильности компиляции проектов на Rust.
Тем, кто не знаком с Meson, стоит отметить, что эта система сборки используется для компиляции таких известных проектов , как X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME и GTK.
Основная цель разработки Meson — обеспечить высокую скорость процесса компиляции в сочетании с удобством и простотой использования. Вместо этого в сборке по умолчанию используется Ninja Toolkit, но можно использовать и другие бэкенды, такие как xcode и VisualStudio.
Система имеет встроенный кроссплатформенный менеджер зависимостей , позволяющий использовать Meson для создания пакетов для дистрибутивов. Правила компиляции написаны на упрощенном, предметно-ориентированном языке, что делает их легко читаемыми и понятными для пользователя (по мнению авторов, разработчики должны тратить минимум времени на написание правил).
Поддерживается кросс-компиляция , а также компиляция на Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS и Windows с использованием GCC, Clang, Visual Studio и других компиляторов.
Возможно создание проектов на нескольких языках программирования , включая C, C++, Fortran, Java и Rust. Поддерживается режим инкрементальной компиляции, в котором перестраиваются только компоненты, непосредственно связанные с изменениями, внесенными с момента последней компиляции.
Meson можно использовать для создания повторяющихся сборок, когда запуск сборки в разных средах приводит к полностью идентичным исполняемым файлам.
Основные новинки Meson 1.0
В этом новом выпуске Meson 1.0 подчеркивается, что Модуль для сборки проектов на языке Rust объявлен стабильным. Этот модуль используется в проекте Mesa для сборки компонентов, написанных на Rust.
Параметр prefix, поддерживаемый большинством функций проверки компилятора, реализует возможность обработки массивов, отличных от строк.
Еще одно заметное изменение в этом релизе — введение новых операторов «in» и «not in» для определения наличия подстроки в строке, аналогично ранее доступной проверке наличия элемента в массиве или словаре.
Кроме того, добавлена опция " warning-level=everything" , активирующая вывод всех доступных предупреждений компилятора (в clang и MSVC используются -Weverything и /Wall, а в GCC включены отдельные предупреждения, которые примерно соответствуют режиму -Weverything в clang).
Также стоит отметить, что добавлен новый аргумент "--workdir", позволяющий переопределить рабочий каталог . Например, использовать текущий каталог вместо рабочего.
Метод rust.bindgen реализует возможность обработки аргумента «dependencies» для передачи путей к зависимостям для обработки компилятором, а функция java.generate_native_headers устарела и переименована в java.native_headers, чтобы соответствовать общему стилю именования функций Meson.
Кроме того, упоминается, что при кросс-компиляции среда разработки теперь устанавливает все переменные среды для хост-машины. Теперь она также устанавливает QEMU_LD_PREFIX и значение sys_root для кросс-файла, если это свойство определено. Это означает, что кросс-скомпилированные исполняемые файлы часто могут работать прозрачно на машине компиляции, например, при кросс-компиляции для aarch64 Linux из x86_64 Linux.
Наконец, если вас интересует более подробная информация, вы можете найти ее по следующей ссылке.
Как установить Meson на Linux?
Для тех, кто заинтересован в возможности установить эту систему сборки в своей системе, они могут сделать это, следуя инструкциям, которые мы публикуем ниже.
Они должны знать, что Meson доступен на PyPi, поэтому его можно установить с помощью команды:
pip3 install meson
В качестве примечания вы должны знать, что точная команда для установки pip может различаться в разных системах, поэтому рекомендуется использовать версию pip для Python 3.