pibliye bati lage sistèm lan Meson 0.52, ki itilize pou konstwi pwojè tankou X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ak GTK+. Meson kòd la ekri nan Python ak apwovizyone ki gen lisans anba Apache 2.0.
Objektif kle nan devlopman Meson se bay gwo vitès nan pwosesis asanble a konbine avèk konvenyans ak fasilite nan itilize. Olye pou yo fè sèvis piblik la, konstriksyon default la sèvi ak bwat zouti a Ninja, men li posib tou pou itilize lòt backends, tankou xcode ak VisualStudio. Sistèm nan gen yon gestionnaire depandans milti-platfòm entegre ki pèmèt ou sèvi ak Meson pou konstwi pakè pou distribisyon. Règ asanble yo espesifye nan yon lang senplifye espesifik nan domèn, yo trè lizib ak konprann itilizatè a (jan otè yo gen entansyon, pwomotè a ta dwe pase yon minimòm de tan ekri règ).
Sipòte кросс-компиляция и сборка в Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS и Windows с использованием GCC, Clang, Visual Studio и других компиляторов. Возможна сборка проектов на различных языках программирования, включая C, C++, Fortran, Java и Rust. Поддерживается инкрементальный режим сборки, при котором пересобираются только компоненты, напрямую связанные с изменениями, внесёнными с момента прошлой сборки. Meson можно использовать для формирования повторяемых сборок, при которых запуск сборки в разных окружениях приводит к генерации полностью идентичных исполняемых файлов.
Добавлена экспериментальная поддержка Webassembly с использованием в качестве компилятора Emscripten;
Существенно улучшена и доведена до рабочего состояния поддержка платформ Illumos и Solaris;
Обеспечено игнорирование сценариев интернационализации на базе gettext в случае отсутствия в системе установленного инструментария gettext (ранее при использовании модуля i18n на системах без gettext выводилась ошибка);
Улучшена поддержка статических библиотек. Решены многие проблемы при использовании деинсталлированных статических библиотек;
Добавлена возможность использования словарей для назначения переменных окружения. При вызове environment() в качестве первого элемента теперь можно указать словарь, в котором переменные окружения определены в форме ключ/значение. Данные переменные будут перенесены в environment_object как если бы они по отдельности устанавливались через метод set(). Словари также теперь могут передаваться в различные функции, поддерживающие аргумент «env»;
Добавлена функция «runtarget alias_target(target_name, dep1, …)», создающая новую сборочную цель первого уровня, которую можно вызывать с выбранным сборочным бэкендом (например, «ninja target_name»). Данная сборочная цель не запускает никакие команды, но обеспечивает сборку всех зависимостей;
Обеспечена автоматическая установка переменной окружения PKG_CONFIG_SYSROOT_DIR при кросс-компиляции при наличии настройки sys_root в секции «[properties]»;
Добавлена опция «—gdb-path» для определения пути к отладчику GDB при указании опции «—gdb testname» для запуска GDB с указанным тестовым сценарием;
Добавлено автоматическое определение сборочной цели clang-tidy для запуска этого linter-а со всеми исходными файлами. Цель создаётся при наличии в системе clang-tidy и определении в корне проекта файла «.clang-tidy» (или «_clang-tidy»);
Добавлена зависимость dependency(‘blocks’) для использования в Clang расширения Blòk;
Разделены представления компоновщика и компилятора, что позволяет использовать разные сочетания компиляторов и компоновщиков;
В объекты SourceSet добавлен метод all_dependencies() в дополнение к методу all_sources();
В run_project_tests.py появилась опция «—only» для выборочного запуска тестов (например, «python run_project_tests.py —only fortran python3»);
В функции find_program() добавлена возможность поиска только требуемых версий программы (версия определяется через запуск программы с опцией «—version»);
Для управления экспортом символов в функцию shared_module() по аналогии с shared_library() добавлена опция vs_module_defs;
Расширены возможности модуля kconfig, который теперь поддерживает configure_file() для определения входного файла;
В configure_file() добавлена возможность указания нескольких входных файлов для обработчиков «command:»;
Команда «dist» для создания архива переведена в разряд команд первого уровня (ранее команда была привязана к ninja). Добавлена опция «—formats» для определения типов создаваемых архивов (например,
«meson dist —formats=xztar,zip»).