Meson Build System Verëffentlechung 1.1

D'Verëffentlechung vum Meson 1.1.0 Build System gouf publizéiert, wat benotzt gëtt fir Projeten wéi X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME a GTK ze bauen. De Meson Code ass am Python geschriwwen an ass ënner der Apache 2.0 Lizenz lizenzéiert.

De Schlësselentwécklungsziel vu Meson ass e High-Speed-Versammlungsprozess kombinéiert mat Komfort an einfacher Benotzung. Amplaz ze maachen, benotzt de Build den Ninja Toolkit als Standard, awer aner Backends wéi xcode a VisualStudio kënnen och benotzt ginn. De System huet en agebaute Multi-Plattform Ofhängegkeet Handler deen Iech erlaabt Meson ze benotzen fir Packagen fir Verdeelungen ze bauen. Assemblée Regelen sinn an enger vereinfacht Domain-spezifesch Sprooch gesat, si gutt liesbar a verständlech fir de Benotzer (no der Iddi vun den Auteuren, soll den Entwéckler e Minimum vun Zäit Schreiwen Regelen verbréngen).

Cross-compiling a bauen op Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS a Windows mat GCC, Clang, Visual Studio an aner Compilere gëtt ënnerstëtzt. Et ass méiglech Projeten a verschiddene Programméierungssproochen ze bauen, dorënner C, C++, Fortran, Java a Rust. En inkrementelle Baumodus gëtt ënnerstëtzt, an deem nëmme Komponenten, déi direkt mat Ännerungen, déi zënter dem leschte Bau gemaach goufen, opgebaut ginn. Meson ka benotzt ginn fir widderhuelend Builds ze generéieren, wou de Build a verschiddenen Ëmfeld laafen komplett identesch Ausféierbar resultéiert.

Haaptinnovatiounen vum 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

Setzt e Commentaire