Ukukhutshwa kwenkqubo yokwakhiwa kweMeson 1.1

Inkqubo yokwakha ye-Meson 1.1.0 ikhutshwe, esetyenziselwa ukwakha iiprojekthi ezifana ne-X.Org Server, i-Mesa, i-Lighttpd, i-systemd, i-GStreamer, i-Wayland, i-GNOME kunye ne-GTK. Ikhowudi ye-Meson ibhalwe kwi-Python kwaye ilayisenisi phantsi kwelayisensi ye-Apache 2.0.

Injongo ephambili yophuhliso lweMeson kukubonelela ngesantya esiphezulu senkqubo yendibano edityaniswe ngokulula kunye nokusebenziseka ngokulula. Endaweni yokwenza into eluncedo, i-Ninja toolkit isetyenziswa ngokungagqibekanga xa kusakhiwa, kodwa ezinye izinto ezingasemva ezifana ne-xcode kunye ne-VisualStudio nazo zingasetyenziswa. Inkqubo inendawo eyakhelwe-ngaphakathi yokuxhomekeka kwiplatform evumela ukuba usebenzise iMeson ukwakha iipakethe zokusasazwa. Imithetho yeNdibano ichazwe kulwimi olulula lwe-domain-specific, ifundeka kakhulu kwaye iyaqondakala kumsebenzisi (njengoko kuhloswe ngababhali, umphuhlisi kufuneka achithe ubuncinci bexesha lokubhala imithetho).

Ixhasa ukuhlanganiswa kunye nokwakhiwa kwe-cross kwi-Linux, i-Illumos / i-Solaris, i-FreeBSD, i-NetBSD, i-DragonFly BSD, i-Haiku, i-macOS kunye ne-Windows usebenzisa i-GCC, i-Clang, i-Visual Studio kunye nabanye abaqulunqi. Kunokwenzeka ukwakha iiprojekthi kwiilwimi ezahlukeneyo zokucwangcisa, kuquka iC, C ++, Fortran, Java kunye neRust. Imowudi yokwakha eyongeziweyo iyaxhaswa, apho kuphela amacandelo anxulumene ngokuthe ngqo notshintsho olwenziweyo ukusukela kulwakhiwo lokugqibela lwakhiwa ngokutsha. I-Meson inokusetyenziselwa ukuvelisa ulwakhiwo oluphinda-phindayo, apho ukusebenza kolwakhiwo kwiindawo ezahlukeneyo kubangela ukuveliswa kweefayile ezifanayo ngokupheleleyo.

Iinguqulelo eziphambili zeMeson 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».

umthombo: opennet.ru

Yongeza izimvo