Meson куруу системасынын релизи 1.1

Meson 1.1.0 куруу системасы чыгарылды, ал X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME жана GTK сыяктуу долбоорлорду куруу үчүн колдонулат. Месондун коду Python тилинде жазылган жана Apache 2.0 лицензиясы боюнча лицензияланган.

Meson иштеп чыгуунун негизги максаты - ынгайлуулугу жана колдонуунун жөнөкөйлүгү менен бирге чогултуу процессинин жогорку ылдамдыгын камсыз кылуу. Make утилитасынын ордуна, курууда демейки боюнча Ninja инструменттери колдонулат, бирок xcode жана VisualStudio сыяктуу башка серверлер да колдонулушу мүмкүн. Системада көп платформалуу көз карандылык иштеткичи бар, ал Mesonду бөлүштүрүү үчүн пакеттерди куруу үчүн колдонууга мүмкүндүк берет. Ассамблея эрежелери жөнөкөйлөштүрүлгөн домендик тилде көрсөтүлөт, колдонуучу үчүн өтө окумдуу жана түшүнүктүү (авторлор белгилегендей, иштеп чыгуучу эрежелерди жазууга аз убакыт коротушу керек).

GCC, Clang, Visual Studio жана башка компиляторлор аркылуу Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS жана Windows'та кайчылаш компиляцияны жана курууну колдойт. Ар кандай программалоо тилдеринде долбоорлорду курууга болот, анын ичинде C, C++, Fortran, Java жана Rust. Кошумча куруу режими колдоого алынат, мында акыркы куруудан кийин жасалган өзгөрүүлөргө түздөн-түз байланыштуу компоненттер гана кайра курулат. Meson кайталануучу түзүлүштөрдү түзүү үчүн колдонулушу мүмкүн, мында түзүүнү ар кандай чөйрөдө иштетүү толугу менен бирдей аткарылуучу файлдарды пайда кылат.

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

Комментарий кошуу