Выпуск сборочной системы Meson 1.0

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 3265
Зарегистрирован: 20.08.2022

#

Выпуск сборочной системы Meson 1.0
Дата публикации:Sat, 24 Dec 2022 09:15:52 +0300


Опубликован релиз сборочной системы Meson 1.0.0, которая используется для сборки таких проектов, как X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME и GTK. Код Meson написан на языке Python и поставляется под лицензией Apache 2.0.

Ключевой целью развития Meson является обеспечение высокой скорости сборочного процесса в сочетании с удобством и простотой использования. Вместо утилиты make при сборке по умолчанию применяется инструментарий Ninja, но возможно применение и других бэкендов, таких как xcode и VisualStudio. В систему встроен многоплатформенный обработчик зависимостей, позволяющий использовать Meson для сборки пакетов для дистрибутивов. Правила сборки задаются на упрощённом предметно-ориентированном языке, отличаются хорошей читаемостью и понятны пользователю (по задумке авторов разработчик должен тратить минимум времени на написание правил).

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

Основные новшества Meson 1.0:
  • Объявлен стабильным модуль для сборки проектов на языке Rust. Данный модуль используется в проекте Mesa для сборки компонентов, написанных на Rust.

    В параметре prefix, поддерживаемом в большинстве функций проверки компилятора, реализована возможность обработки массивов помимо строк. Например, теперь можно указывать:

    cc.check_header('GL/wglew.h', prefix : ['#include <windows.h>', '#include <GL/glew.h>'])


    Добавлен новый аргумент "--workdir", позволяющий переопределить рабочий каталог. Например, для использования текущего каталога вместо рабочего можно запустить:

    meson devenv -C builddir --workdir .


    Предложены новые операторы "in" и "not in" для определения вхождения в строку подстроки по аналогии с ранее доступной проверкой вхождения элемента в массив или словарь. Например:

    fs = import('fs')
    if 'something' in fs.read('somefile')
    # True
    endif

    Добавлена опция "warning-level=everything", включающая вывод всех имеющихся предупреждений компилятора (в clang и MSVC использует -Weverything и /Wall, а в GCC раздельно включаются предупреждения, примерно соответствующие режиму -Weverything вclang).


    В методе rust.bindgen реализована возможность обработки аргумента "dependencies" для передачи путей к зависимостям, которые должны быть обработаны компилятором.

    Объявлена устаревшей функция java.generate_native_headers, которая переименована в java.native_headers для соответствия общему стилю наименования функций, принятому в Meson.


Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=58382

Жизнь за Нер'зула!

Ответить