Meson build system release 1.1

U sistema di creazione Meson 1.1.0 hè statu liberatu, chì hè utilizatu per custruisce prughjetti cum'è X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME è GTK. U codice di Meson hè scrittu in Python è hè licenziatu sottu a licenza Apache 2.0.

U scopu chjave di u sviluppu Meson hè di furnisce una alta velocità di u prucessu di assemblea cumminata cù comodità è facilità d'usu. Invece di l'utilità di creazione, u toolkit Ninja hè utilizatu per difettu quandu si custruisce, ma altri backends cum'è xcode è VisualStudio ponu ancu esse usatu. U sistema hà un gestore di dependenza multi-piattaforma integrata chì permette di utilizà Meson per custruisce pacchetti per distribuzioni. I reguli di l'assemblea sò specificati in una lingua simplificata specifica di u duminiu, sò assai leghjite è cumprendi per l'utilizatori (cum'è intesu da l'autori, u sviluppatore deve passà un minimu di tempu scrivendu regule).

Supporta a compilazione incruciata è a custruzione nantu à Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS è Windows cù GCC, Clang, Visual Studio è altri compilatori. Hè pussibule di custruisce prughjetti in diverse lingue di prugrammazione, cumprese C, C++, Fortran, Java è Rust. U modu di creazione incrementale hè supportatu, in quale solu i cumpunenti direttamente ligati à i cambiamenti fatti da l'ultima custruzzione sò ricustruiti. Meson pò esse usatu per generà custruzzioni ripetibili, in quale l'esecuzione di a custruzzione in ambienti differenti si traduce in a generazione di fugliali eseguibili completamente identici.

Principali innovazioni di 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».

Source: opennet.ru

Add a comment