Новости и события » Hi-Tech » Доступна система сборки Meson 0.42, на которую переходит systemd, GTK+ и GNOME

Доступна система сборки Meson 0.42, на которую переходит systemd, GTK+ и GNOME

Состоялся релиз сборочной системы Meson 0.42, использующей вместо утилиты make инструментарий Ninja. Ключевыми целями развития Meson является обеспечение высокой производительности в сочетании с удобством и простотой использования. Код проекта написан на языке Python и поставляется под лицензией Apache 2.0.

Создатели Meson придерживаются принципа, что каждый момент, который разработчики тратят на написание правил сборки или отладку тратятся впустую и лишь оттягивают время до того, как можно будет начать процесс сборки. Основные особенности Meson:

  • Многоплатформенность, поддерживается сборка в Linux, macOS и Windows с использованием GCC, Clang, Visual Studio и других компиляторов;
  • Поддержка сборки проектов на различных языках программирования, включая C, C++, Fortran, Java и Rust;
  • Поддержка кросс-компиляции для различных операционных систем и для запуска на голом оборудовании (bare metal);
  • Оптимизации для максимального ускорения процесса сборки, поддержка инкрементальных сборок;
  • Встроенный многоплатформенный обработчик зависимостей, работающий совместно с пакетами в дистрибутивах (Meson можно использовать для сборки пакетов в дистрибутивах);
  • Поддержка повторяемых сборок, при которых запуск сборки разных окружениях приводит к идентичному результату;
  • Предельно читаемые и дружественные пользователю павила сборки, задаваемые на предметно-ориентированном языке. Например, простейший файл сборки (meson.build) будет выглядеть как:

    project('tutorial', 'c') executable('demo', 'main.c') или более сложный вариант с зависимостью от gtk+-3.0:

    project('tutorial', 'c') gtkdep = dependency('gtk+-3.0') executable('demo', 'main.c', dependencies: gtkdep)

    После выполнения "meson builddir" будет сгенерирован сценарий для утилиты ninja.

Сборочная система Meson c большим интересом была воспринята некоторыми крупными открытыми проектами. Например, проект systemd интегрировал поддержку Meson, которая в одном из следующих выпусков полностью вытеснит сборку на основе Automake. Миграцию на Meson также планирует проект GNOME - выпуске 3.26 некоторые модули уже будут переведены на Meson. Поддержка Meson добавлена в jhbuild, GNOME builder и flatpak-builder, а сам Meson вошел в состав GNOME SDK.

Более того, вчера объявлено о переводе master-ветки GTK+ на сборку с использованием Meson, а сборочные файлы для Autotools удалены. По сравнению с Autotools время сборки GTK+ сократилось в три раза. На пути перехода на Meson также находится проект Mesa - сборка Mesa при помощи Meson оказалась в 4 раза быстрее при первом запуске и в 10 раз быстрее при повторном.

Среди новшеств, появившихся в выпуске Meson 0.42:

  • Возможность создания архивов со сборками на основе кода в репозитории Mercurial;
  • Поддержка верификации аргументов при вызове любой функции с выводом предупреждения, если аргумент ключевого слова неизвестен;
  • Поддержка компилятора для преобразования кода Genie на язык Vala;
  • Поддержка Pkgconfig для обработки дополнительных cflags
  • Возможность определения настроек исполняемых контейнеров (crate) для компилятора языка Rust
  • Поддержка одновременного использования детектора проблем при работе с памятью (AddressSanitizer) и детектора неопределенного поведения (Undefined Behavior Sanitizer) через указание опции "-Db_sanitize=address,undefined";
  • Экспериментальная поддержка модуля для сборки кода с различными вариантами применения инструкций SIMD (модуль выбирает лучший вариант);
  • Поддержка импорта библиотек для исполняемых файлов на платформе Windows;

  • Добавлен модуль контроля зависимостей для графического API Vulkan
  • Возможность ограничения максиамального числа одновременно запускаемых процессов компоновщиков
  • Поддержка MPI в качестве зависимости
  • Поддержка выборочного исключения файлов или каталогов из команды install_subdir;
  • Доступность всей функциональности Meson через один исполняемый файл (ранее предлагались дополнительные утилиты mesonintrospect, mesonconf и mesontest которые теперь можно вызвать через команды подобные "meson configure" и "meson test".

Свежие новости Украины на сегодня и последние события в мире экономики и политики, культуры и спорта, технологий, здоровья, происшествий, авто и мото

Вверх