Meson build sistema rilaxx 0.52

ippubblikat tibni rilaxx tas-sistema Meson 0.52, li jintuża biex jinbnew proġetti bħal X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME u GTK+. Il-kodiċi Meson huwa miktub f'Python u fornuti liċenzjat taħt Apache 2.0.

L-għan ewlieni tal-iżvilupp Meson huwa li jipprovdi veloċità għolja tal-proċess tal-assemblaġġ flimkien mal-konvenjenza u l-faċilità tal-użu. Minflok l-utilità make, il-build default juża l-għodda Ninja, iżda huwa wkoll possibbli li tuża backends oħra, bħal xcode u VisualStudio. Is-sistema għandha mmaniġġjar tad-dipendenza multi-pjattaforma mibni li jippermettilek tuża Meson biex tibni pakketti għad-distribuzzjonijiet. Ir-regoli tal-assemblaġġ huma speċifikati f'lingwa simplifikata speċifika għad-dominju, jinqraw ħafna u jinftiehmu mill-utent (kif maħsub mill-awturi, l-iżviluppatur għandu jqatta 'minimu ta' ħin jikteb ir-regoli).

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

Il-prinċipali innovazzjonijiet Meson 0.52:

  • Добавлена экспериментальная поддержка Webassembly с использованием в качестве компилятора Emscripten;
  • Существенно улучшена и доведена до рабочего состояния поддержка платформ Illumos и Solaris;
  • Обеспечено игнорирование сценариев интернационализации на базе gettext в случае отсутствия в системе установленного инструментария gettext (ранее при использовании модуля i18n на системах без gettext выводилась ошибка);
  • Улучшена поддержка статических библиотек. Решены многие проблемы при использовании деинсталлированных статических библиотек;
  • Добавлена возможность использования словарей для назначения переменных окружения. При вызове environment() в качестве первого элемента теперь можно указать словарь, в котором переменные окружения определены в форме ключ/значение. Данные переменные будут перенесены в environment_object как если бы они по отдельности устанавливались через метод set(). Словари также теперь могут передаваться в различные функции, поддерживающие аргумент «env»;
  • Добавлена функция «runtarget alias_target(target_name, dep1, …)», создающая новую сборочную цель первого уровня, которую можно вызывать с выбранным сборочным бэкендом (например, «ninja target_name»). Данная сборочная цель не запускает никакие команды, но обеспечивает сборку всех зависимостей;
  • Обеспечена автоматическая установка переменной окружения PKG_CONFIG_SYSROOT_DIR при кросс-компиляции при наличии настройки sys_root в секции «[properties]»;
  • Добавлена опция «—gdb-path» для определения пути к отладчику GDB при указании опции «—gdb testname» для запуска GDB с указанным тестовым сценарием;
  • Добавлено автоматическое определение сборочной цели clang-tidy для запуска этого linter-а со всеми исходными файлами. Цель создаётся при наличии в системе clang-tidy и определении в корне проекта файла «.clang-tidy» (или «_clang-tidy»);
  • Добавлена зависимость dependency(‘blocks’) для использования в Clang расширения Blokki;
  • Разделены представления компоновщика и компилятора, что позволяет использовать разные сочетания компиляторов и компоновщиков;
  • В объекты SourceSet добавлен метод all_dependencies() в дополнение к методу all_sources();
  • В run_project_tests.py появилась опция «—only» для выборочного запуска тестов (например, «python run_project_tests.py —only fortran python3»);
  • В функции find_program() добавлена возможность поиска только требуемых версий программы (версия определяется через запуск программы с опцией «—version»);
  • Для управления экспортом символов в функцию shared_module() по аналогии с shared_library() добавлена опция vs_module_defs;
  • Расширены возможности модуля kconfig, который теперь поддерживает configure_file() для определения входного файла;
  • В configure_file() добавлена возможность указания нескольких входных файлов для обработчиков «command:»;
  • Команда «dist» для создания архива переведена в разряд команд первого уровня (ранее команда была привязана к ninja). Добавлена опция «—formats» для определения типов создаваемых архивов (например,
    «meson dist —formats=xztar,zip»).

Sors: opennet.ru

Żid kumment