Дата публикации:Tue, 14 Apr 2026 09:07:49 +0300
Опубликован релиз сборочной системы Meson 1.11.0, которая используется для сборки таких проектов, как X.Org Server, Mesa, QEMU, Lighttpd, systemd, GStreamer, Wayland, GNOME и GTK. Код Meson написан на языке Python и поставляется под лицензией Apache 2.0.
Ключевой целью развития Meson является обеспечение высокой скорости сборочного процесса в сочетании с удобством и простотой использования. Вместо утилиты make при сборке по умолчанию применяется инструментарий Ninja, но возможно применение и других бэкендов, таких как Xcode и Visual Studio. В систему встроен многоплатформенный обработчик зависимостей, позволяющий использовать Meson для сборки пакетов для дистрибутивов. Правила сборки задаются на упрощённом предметно-ориентированном языке, отличаются хорошей читаемостью и понятны пользователю (по задумке авторов разработчик должен тратить минимум времени на написание правил).
Поддерживается кросс-компиляция и сборка в Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS и Windows с использованием GCC, Clang, Visual Studio и других компиляторов. Возможна сборка проектов на различных языках программирования, включая C, C++, Fortran, Java, D и Rust. Поддерживается инкрементальный режим сборки, при котором пересобираются только компоненты, напрямую связанные с изменениями, внесёнными с момента прошлой сборки. Meson можно использовать для формирования повторяемых сборок, при которых запуск сборки в разных окружениях приводит к генерации полностью идентичных исполняемых файлов.
Основные новшества Meson 1.11:
- При вызове в скриптах Meson метода rust.workspace() реализован разбор корневого файла Cargo.toml внутри проекта, для корректной активации при сборке feature-флагов, определённых в общем для всех рабочих пространств файле Cargo.toml. Кроме того, метод rust.workspace() теперь возвращает объект, через который можно получить список feature-флагов и зависимостей для подпроектов, а также запустить сборку целей, объявленных в файлах Cargo.toml. В команду "meson dist" добавлены опция "-j" (--num-processes) и переменная окружения MESON_NUM_PROCESSES для задания числа процессов, параллельно выполняемых при сборке и тестировании пакетов. Параметр should_fail, допускающий прохождении теста при возвращении ошибки, объявлен устаревшим и переименован в expected_fail. Добавлен параметр expected_exitcode для выставления кода успешного завершения теста, отличного от 0. В модуле external_project на платформе Windows задействована команда cygpath для преобразования специфичных для Windows файловых путей и Unix-подобные пути (например, из C:/path/to/configure в /path/to/configure). В команды install_man и install_headers добавлена поддержка аргумента install_tag для выбора устанавливаемых файлов по произвольным тегам, а не только по тегам man и devel. Добавлен параметр link_early_args, через который в командную строку при запуске компоновщика можно подставить опции (например, "-u" или "--defsym") до перечисления объектов и библиотек. Добавлена константа "~", заменяемая на домашний каталог в файлах описания среды (machine files). В команде "meson format" по умолчанию отключена сортировка файлов, указанных в числе аргументов функции files(). Для включения сортировки следует использовать опцию sort_files. Анонсировано прекращение поддержки версий Python до выпуска 3.10. Meson 1.11.0 является последним выпуском с поддержкой веток Python 3.7, 3.8 и 3.9. Добавлена поддержка новых возможностей C/C++ компилятора MPLAB XC32, появившихся в версии 5.0, таких как автоматическое включение LTO-оптимизаций и поддержка стандартов C2x и CPP23.
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=65199