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.