The OpenNET Project / Index page

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



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

Исходное сообщение
"Выпуск сборочной системы Meson 0.50"
Отправлено opennews, 11-Мрт-19 10:35 
Представлен (https://groups.google.com/forum/#!topic/mesonbuild/HRQPYoHGYA0) релиз сборочной системы Meson 0.50 (http://mesonbuild.com/), которая используется для сборки таких проектов, как X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME и GTK+. Код Meson написан на языке Python и поставляется (https://github.com/mesonbuild/meson) под лицензией Apache 2.0.

Ключевой целью развития Meson  является обеспечение высокой скорости сборочного процесса в сочетании с  удобством и простотой использования. Вместо утилиты make при сборке по умолчанию применяется инструментарий Ninja (https://www.opennet.ru/opennews/art.shtml?num=29525), но возможно применение и других бэкендов, таких как xcode и VisualStudio. В систему встроен многоплатформенный обработчик зависимостей, позволяющий использовать Meson для сборки пакетов для дистрибутивов. Правила сборки задаются на упрощённом предметно-ориентированном языке,  отличаются хорошей читаемостью и понятны пользователю (по задумке авторов разработчик должен тратить минимум времени на написание правил). Например, простейший файл сборки (meson.build) будет выглядеть как:


   project('tutorial', 'c')
   executable('demo', 'main.c')

или более сложный вариант с зависимостью от GTK3:


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

Поддерживается кросс-компиляция и сборка в Linux, macOS и Windows с использованием GCC, Clang, Visual Studio и других компиляторов. Возможна сборка проектов на различных языках программирования, включая C, C++, Fortran, Java и Rust. Поддерживается инкрементальный режим сборки, при котором пересобираются только компоненты, напрямую связанные с изменениями, внесёнными с момента прошлой сборки. Meson можно использовать для формирования повторяемых сборок, при которых запуск сборки в разных окружениях приводит к генерации полностью идентичных исполняемых файлов.

Основные новшества (https://mesonbuild.com/Release-notes-for-0-50-0.html) &... 0.50:


-  Добавлена поддержка развиваемых компанией  NVIDIA компиляторов PGI (https://www.pgroup.com/) для языков  C, C++ и Fortran, а также компилятора Flang (https://github.com/flang-compiler/flang);


-  Добавлена поддержка расширения coarray для параллельного программирования на языке Fortran, стандартизированного в  спецификациях Fortran 2008 и Fortran 2018. В коде для разбора зависимостей также представлена начальная поддержка субмодулей для Fortran, определяемых при помощи выражения "submodule";


-  Обеспечена возможность указания пути к каталогу с модулями для системы CMake в составе зависимостей. Бэкенд для определения зависимостей через CMake теперь может использовать существующие файлы Find{name}.cmake через указание свойства make_module_path в dependency(). Также добавлена поддержка передачи  CMake дополнительных параметров при помощи опции cmake_args;

-  Значение  libdir при кросс-компиляции теперь указывает на каталог "/lib", а не на специфичные для выбранной архитектуры пути (например "lib/x86_64-linux-gnu");

-  В сборочные файлы добавлена новая секция "[paths]" для определения постоянных путей, таких как prefix и libdir;

-  Добавлен режим "warning_level 0" для отключения в компиляторе любых проверок, связанных со статическим анализом кода;

-  Добавлена встроенная сборочная цель (ninja clang-format) для форматирования кода при помощи clang-format;

-  Реализована возможность указания в ключевом слове include_directories  строковых значений, а не только объектов, ссылающихся на каталоги;

-  Для языков C, C++ и Fortran добавлена поддержка обработчиков формата для обмена научными данными NetCDF (https://en.wikipedia.org/wiki/NetCDF) через вызов pkg-config;
-  Добавлена поддержка формата HDF5 (https://www.hdfgroup.org/solutions/hdf5/) через вызов pkg-config;

-  Добавлена поддержка компиляции кода NVIDIA CUDA (пока только при помощи бэкенда на базе Ninja).  Так как компилятор CUDA не сохраняет файлы с зависимостями (*.d), отслеживание зависимостей не поддерживается;

-  Расширены возможности интроспекции. Обеспечена генерация файла meson-info.json при каждом запуске meson. Добавлена поддержка инроспектирования разом нескольких параметров. Реализована возможность  выполнения "introspect --targets" и "introspect --buildoptions" без настроенного сборочного  каталога. Добавлена команда "introspect --scan-dependencies" для поиска зависимостей  в проекте;

-  Добавлена функциональность для изменения файлов meson.build при выполнении операций в командной строке. Например, можно добавлять и исключать исходные файлы и сборочные цели (target), изменять наборы kwargs и модифицировать применяемые по умолчанию сборочные опции.

URL: https://groups.google.com/forum/#!topic/mesonbuild/HRQPYoHGYA0
Новость: https://www.opennet.ru/opennews/art.shtml?num=50288

 

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



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

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