Meson 1.11.0

Проект Meson выпустил версию 1.11.0. Релиз состоялся 13 апреля 2026 года и продолжает развитие одной из самых заметных свободных систем сборки, используемой во множестве Linux и кроссплатформенных проектов.
Meson традиционно делает ставку на высокую скорость, предсказуемое описание сборки и сравнительно простой DSL, а новый выпуск в основном сосредоточен на практических улучшениях для реальных сценариев разработки.
Ключевые изменения в Meson 1.11.0:
- поддержка разбора верхнеуровневого
Cargo.tomlчерезworkspace()в Rust-модуле; - поддержка
link_args,add_project_link_arguments()иadd_global_link_arguments()для Rust; - новый метод
compiler_target()в Rust-модуле; - Cython больше не требует явного включения C или C++;
- новый аргумент
link_early_argsдля более ранней передачи опций линковщику; meson distполучил поддержку-j/--num-processes;install_manиinstall_headersтеперь поддерживаютinstall_tag;- дедупликация OpenMP linker arguments;
- автоматическое определение
QT_DEBUGиQT_NO_DEBUG; - улучшения для Windows-окружений и
rc.exe.
Одно из самых заметных изменений касается Rust. Meson 1.11.0 научился разбирать верхнеуровневый Cargo.toml при вызове workspace() в Rust-модуле, благодаря чему зависимости и feature-флаги теперь разрешаются в соответствии с конфигурацией рабочего пространства Cargo. Это делает интеграцию с Rust-проектами заметно более зрелой: возвращаемый объект workspace позволяет получать сведения о зависимостях и features для Cargo-субпроектов, а также собирать цели, описанные в Cargo.toml.
Разработчики также расширили работу Meson с Rust на этапе линковки. Начиная с версии 1.11.0, для Rust поддерживаются add_project_link_arguments(), add_global_link_arguments() и link_args, которые передаются через rustc с обёрткой -Clink-arg=. Кроме того, в Rust-модуле появился метод compiler_target(), возвращающий target triple компилятора, что упрощает перенос сценариев, ранее завязанных на переменные Cargo вроде TARGET и HOST.
Ещё одно прикладное изменение затрагивает Cython: теперь для работы с ним больше не требуется явно включать языки C или C++. При этом Meson оговаривает, что такие языки добавляются только как внутренняя деталь реализации Cython, а не как полноценная возможность параллельно собирать обычные native C/C++ targets. Для пользователей это, прежде всего, упрощение конфигурации сборки.
В релиз вошли и улучшения, рассчитанные на более тонкий контроль линковки и установки. У целей, выполняющих линковку, появился новый аргумент link_early_args, позволяющий передавать опции линковщику до объектов и библиотек — это важно для параметров вроде -u или --defsym, которые чувствительны к порядку. Также install_man и install_headers получили поддержку install_tag, чтобы установленными файлами можно было гибче управлять через meson install --tags.
Отдельно стоит отметить развитие инструментов сопровождения сборки. Команда meson dist теперь принимает -j и --num-processes, что позволяет управлять числом параллельных процессов при проверке дистрибутива. Параллельно Meson начал дедуплицировать линкерные аргументы OpenMP, такие как -fopenmp и -qopenmp, а в Qt-модулях теперь автоматически определяются макросы QT_DEBUG или QT_NO_DEBUG в зависимости от режима сборки, что приближает поведение к qmake.
Изменения есть и в совместимости со специфическими платформенными сценариями. В модуле external_project для Windows теперь используется cygpath, чтобы корректно преобразовывать пути к Unix-виду при работе с configure-скриптами в окружениях вроде MSYS2 и Cygwin. Кроме того, windows.compile_resources теперь умеет отслеживать изменения заголовков при использовании rc.exe, обходя давнее ограничение этого компилятора ресурсов.
В целом Meson 1.11.0 выглядит как релиз без громких революций, но с заметным количеством инженерно значимых доработок. Главный смысл выпуска — сделать систему сборки удобнее для современных mixed-language-проектов, особенно там, где рядом живут Rust, Cython, Qt и традиционные C/C++-компоненты. Для разработчиков это, скорее, не повод переписывать инфраструктуру, а аккуратное, но полезное обновление инструмента, который и так давно стал частью повседневного стека свободного ПО.
>>> Источник
