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

Материал из Викиновостей, свободного источника новостей

15 августа 2017 года

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

Основные особенности 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").

Источники[править]


Creative Commons
Creative Commons
Эта статья содержит материалы из статьи «Доступна система сборки Meson 0.42, на которую переходят systemd, GTK+ и GNOME», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.