The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Доступна система сборки Meson 0.42, на которую переходит sys..."
Отправлено opennews, 15-Авг-17 23:57 
Состоялся (https://github.com/mesonbuild/meson/releases) релиз сборочной системы Meson 0.42 (http://mesonbuild.com/), использующей вместо утилиты make инструментарий Ninja (https://www.opennet.ru/opennews/art.shtml?num=29525). Ключевыми целями развития Meson  является обеспечение высокой производительности в сочетании с  удобством и простотой использования. Создатели Meson придерживаются принципа, что каждый момент, который разработчики  тратят на написание правил сборки или отладку тратятся впустую и лишь оттягивают время до того, как можно будет начать процесс сборки. Код проекта написан на языке Python и поставляется (https://github.com/mesonbuild/meson) под лицензией 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 интегрировал (https://www.opennet.ru/opennews/art.shtml?num=46843) поддержку Meson, которая в одном из следующих выпусков полностью вытеснит сборку на основе Automake. Миграцию на Meson также планирует (https://blogs.gnome.org/mclasen/2017/04/20/meson-considerations/) проект GNOME - выпуске 3.26 некоторые модули уже будут переведены на Meson. Поддержка Meson добавлена в jhbuild, GNOME builder и flatpak-builder, а сам Meson вошёл в состав GNOME SDK.


Более того, вчера объявлено (https://mail.gnome.org/archives/gtk-devel-list/2017-August/m...) о переводе master-ветки GTK+ на сборку с использованием Meson, а сборочные файлы для Autotools удалены. По сравнению с Autotools  время сборки GTK+ сократилось в три раза. На пути перехода на Meson также находится (https://lists.freedesktop.org/archives/mesa-dev/2017-March/1...) проект Mesa - сборка Mesa при помощи Meson оказалась в 4 раза быстрее при первом запуске и в 10 раз быстрее при повторном.


Среди новшеств (http://mesonbuild.com/Release-notes-for-0-42-0.html), появившихся в выпуске Meson 0.42:


-  Возможность создания архивов со сборками на основе кода в репозитории  Mercurial;

-  Поддержка верификации аргументов при вызове любой функции с выводом предупреждения, если аргумент ключевого слова неизвестен;

-  Поддержка  компилятора для преобразования кода Genie (https://wiki.gnome.org/Projects/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".

URL: https://github.com/mesonbuild/meson/releases
Новость: http://www.opennet.ru/opennews/art.shtml?num=47031

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру