Meson build sistema rilaxx 1.1

Ġie ppubblikat ir-rilaxx tas-sistema tal-bini Meson 1.1.0, li tintuż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 huwa liċenzjat taħt il-liċenzja Apache 2.0.

L-għan ewlieni ta 'żvilupp ta' Meson huwa li jipprovdi proċess ta 'assemblaġġ ta' veloċità għolja flimkien ma 'konvenjenza u faċilità ta' użu. Minflok tagħmel, il-bini juża l-għodda Ninja awtomatikament, iżda backends oħra bħal xcode u VisualStudio jistgħu jintużaw ukoll. 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 stabbiliti f'lingwa simplifikata speċifika għad-dominju, jinqraw tajjeb u jinftiehmu mill-utent (skond l-idea tal-awturi, l-iżviluppatur għandu jqatta 'minimu ta' ħin jikteb ir-regoli).

Il-kumpilazzjoni inkroċjata u l-bini fuq Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS u Windows bl-użu ta 'GCC, Clang, Visual Studio u kompilaturi oħra huma appoġġjati. Huwa possibbli li jinbnew proġetti f'diversi lingwi ta' programmar, inklużi C, C++, Fortran, Java u Rust. Modalità ta 'bini inkrementali hija appoġġjata, li fiha biss komponenti li huma direttament relatati mal-bidliet li saru mill-aħħar bini huma mibnija mill-ġdid. Meson jista 'jintuża biex jiġġenera bini ripetibbli, fejn it-tħaddim tal-bini f'ambjenti differenti jirriżulta f'eżekutibbli kompletament identiċi.

Innovazzjonijiet ewlenin ta '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».

Sors: opennet.ru

Żid kumment