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

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

#

Выпуск сборочной системы Meson 1.4
Дата публикации:Wed, 13 Mar 2024 22:26:37 +0300




Опубликован релиз сборочной системы Meson 1.4.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.4:
  • В функции fs.name, fs.parent, fs.replace_suffix и fs.stem
    модуля FS добавлена поддержка объектов сборочных целей build_tgt и custom_tgt, а также индекса сборочных целей (custom_idx).


    Добавлена возможность чтения версии проекта из подпроектов на базе CMake.

    Предоставлена возможность контролировать assert-проверки (GLIBCXX_ASSERTIONS) в C++ stdlib через настройку ndebug.

    В stldebug добавлена поддержка Clang (при включении debugstl теперь выставляется "-D_GLIBCXX_DEBUG=1" и "-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_DEBUG").



    В объект env добавлен метод unset().

    В объект File добавлен метод full_path() для получения полного пути к файлу.


    Добавлена поддержка указания собственных зависимостей для numpy (dependency('numpy')).

    В метод compiler.preprocess() добавлен параметр "depends", позволяющий определить зависимую сборочную цель для compiler.preprocess().

    В функции compile_ui, compile_moc и preprocess из модулей qt4, qt5 и qt6 добавлен аргумент preserve_paths для выбора варианта построения структуры каталогов для записываемых файлов (если значение true - "{target private directory}/subdir/one.out", а если false - "{target private directory}/one.out").


    В генераторе привязок bindgen обеспечено использование эвристики Meson для определения заголовочных файлов C++.

    Добавлена возможность переопределения настроек языка для bindgen (например, для обработки файлов с расширением .h как заголовочных файлов для C++).

    Выполнение тестов теперь завершается по умолчанию после ошибок, выявленных при запуске санитайзеров, таких как MemorySanitizer.


    Добавлена поддержка C/C++ компилятора Texas Instruments для семейства CPU C6000.


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

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

Ответить