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

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

#

Выпуск сборочной системы Meson 1.1
Дата публикации:Tue, 11 Apr 2023 12:26:39 +0300




Опубликован релиз сборочной системы Meson 1.1.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.1:
  • В declare_dependency() добавлен новый аргумент "objects:" для прикрепления объектов напрямую к исполняемым файлам в форме внутренних зависимостей, не требующих применения link_who.

    В команду "meson devenv --dump" добавлена опциональная возможность указания файла для записи в него переменных окружения, вместо вывода в стандартный выходной поток.

    Добавлены методы FeatureOption.enable_if и FeatureOption.disable_if для упрощения создания условных конструкций при подготовке к передаче параметров в функцию dependency().

    opt = get_option('feature').disable_if(not foo, error_message : 'Cannot enable feature when foo is not also enabled')
    dep = dependency('foo', required : opt)


    Разрешена передача сгенерированных объектов в числе аргументов "objects:".
    В функции project реализована поддержка установки файлов с информацией о лицензиях проекта.

    При выполнении "sudo meson install" обеспечен сброс привилегий во время пересборки для целевых платформ.

    В команде "meson install" предоставлена возможность указания отдельного обработчика для получения прав root (например, можно выбрать polkit, sudo, opendoas или $MESON_ROOT_CMD).
    При запуске "meson install" не в интерактивном режиме больше не производятся попытки повышения привилегий.

    Добавлена поддержка чтения опций из файла meson.options вместо meson_options.txt.

    Обеспечено перенаправления в stderr вывода информации о ходе интроспекции.
    Добавлен новый бэкенд "none" (--backend=none) для создания проектов, имеющих только правила установки и не содержащих правил сборки.
    Добавлена новая зависимость pybind11, обеспечивающая работу
    dependency('pybind11') с pkg-config и cmake без применения скрипта pybind11-config.

    Разрешено использование опций "--reconfigure" и "--wipe" (meson setup --reconfigure builddir и meson setup --wipe builddir ) с пустым builddir.

    В meson.add_install_script() добавлена поддержка ключевого слова dry_run, разрешающего запуск собственных установочных скриптов при вызове "meson install --dry-run".


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

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

Ответить