„Meson build“ sistemos leidimas 1.1

Paskelbtas Meson 1.1.0 kūrimo sistemos leidimas, kuris naudojamas kuriant tokius projektus kaip X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ir GTK. Meson kodas parašytas Python ir yra licencijuotas pagal Apache 2.0 licenciją.

Pagrindinis Meson plėtros tikslas yra užtikrinti greitą surinkimo procesą kartu su patogumu ir paprastu naudojimu. Vietoj make, pagal numatytuosius nustatymus kūrimas naudoja „Ninja“ įrankių rinkinį, tačiau taip pat galima naudoti kitas pagrindines programas, tokias kaip „xcode“ ir „VisualStudio“. Sistema turi integruotą kelių platformų priklausomybės tvarkyklę, leidžiančią naudoti „Meson“ paskirstymo paketams kurti. Surinkimo taisyklės nustatytos supaprastinta konkrečiai domeno kalba, jos yra gerai skaitomos ir suprantamos vartotojui (pagal autorių sumanymą, taisyklių rašymui kūrėjas turėtų skirti minimalų laiką).

Palaikomas kryžminis kompiliavimas ir kūrimas Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS ir Windows naudojant GCC, Clang, Visual Studio ir kitus kompiliatorius. Galima kurti projektus įvairiomis programavimo kalbomis, įskaitant C, C++, Fortran, Java ir Rust. Palaikomas laipsniškas kūrimo režimas, kuriame atkuriami tik tie komponentai, kurie yra tiesiogiai susiję su pakeitimais, atliktais po paskutinės versijos. Meson gali būti naudojamas kartojamoms versijoms generuoti, kai paleidus kūrimą skirtingose ​​aplinkose gaunami visiškai identiški vykdomieji failai.

Pagrindinės Meson 1.1 naujovės:

  • В 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».

Šaltinis: opennet.ru

Добавить комментарий