Meson build sistēmas laidiens 1.1

Ir publicēts Meson 1.1.0 būvēšanas sistēmas izlaidums, kas tiek izmantots tādu projektu izveidei kā X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME un GTK. Meson kods ir rakstīts Python un ir licencēts saskaņā ar Apache 2.0 licenci.

Galvenais Meson attīstības mērķis ir nodrošināt ātru montāžas procesu apvienojumā ar ērtībām un lietošanas vienkāršību. Make vietā pēc noklusējuma tiek izmantots Ninja rīku komplekts, taču var izmantot arī citas aizmugursistēmas, piemēram, xcode un VisualStudio. Sistēmai ir iebūvēts vairāku platformu atkarības apstrādātājs, kas ļauj izmantot Meson, lai izveidotu pakotnes izplatīšanai. Montāžas noteikumi ir iestatīti vienkāršotā domēna specifiskā valodā, tie ir labi salasāmi un lietotājam saprotami (pēc autoru idejas izstrādātājam noteikumu rakstīšanai jāpavada minimāls laiks).

Tiek atbalstīta savstarpēja kompilēšana un veidošana uz Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS un Windows, izmantojot GCC, Clang, Visual Studio un citus kompilatorus. Ir iespējams veidot projektus dažādās programmēšanas valodās, tostarp C, C++, Fortran, Java un Rust. Tiek atbalstīts pakāpenisks veidošanas režīms, kurā tiek pārbūvēti tikai tie komponenti, kas ir tieši saistīti ar izmaiņām, kas veiktas kopš pēdējās būvēšanas. Meson var izmantot atkārtojamu būvējumu ģenerēšanai, kur, palaižot būvējumu dažādās vidēs, tiek ģenerēti pilnīgi identiski izpildāmie faili.

Galvenie Meson 1.1 jauninājumi:

  • Jauns arguments "objekti:" ir pievienots deklarācijai_dependency(), lai pievienotu objektus tieši izpildāmajiem failiem kā iekšējās atkarības, kurām nav nepieciešama saite_who.
  • Komandai "meson devenv --dump" ir izvēles iespēja norādīt failu, kurā rakstīt vides mainīgos, nevis izvadīt standarta izvades straumē.
  • Pievienotas metodes FeatureOption.enable_if un FeatureOption.disable_if, lai atvieglotu nosacījumu izveidi, gatavojoties parametru nodošanai funkcijai dependency(). opt = get_option('feature').disable_if(not foo, error_message : 'Nevar iespējot funkciju, ja arī foo nav iespējots') dep = dependency('foo', obligāti : opt)
  • Ir atļauts nodot ģenerētos objektus starp argumentiem "objekti:".
  • Projekta funkcija atbalsta failu instalēšanu ar informāciju par projekta licencēm.
  • Izpildot "sudo meson install", tiek nodrošināta privilēģiju atiestatīšana mērķa platformu pārbūves laikā.
  • Komanda "meson install" nodrošina iespēju norādīt atsevišķu apstrādātāju root atļauju iegūšanai (piemēram, varat atlasīt polkit, sudo, opendoas vai $MESON_ROOT_CMD). Palaižot "mezona instalēšanu" neinteraktīvā režīmā, vairs netiek mēģināts paaugstināt privilēģijas.
  • Pievienots atbalsts lasīšanas opcijām no faila meson.options, nevis meson_options.txt.
  • Nodrošināta informācijas par introspekcijas gaitu izvades novirzīšanu uz stderr.
  • Ir pievienota jauna aizmugursistēma "nav" (--backend=none), lai izveidotu projektus, kuriem ir tikai instalēšanas kārtulas un nav veidošanas kārtulu.
  • Ir pievienota jauna atkarība pybind11, lai dependency ('pybind11') darbotos ar pkg-config un cmake, neizmantojot skriptu pybind11-config.
  • Opcijas "--reconfigure" un "--wipe" (meson setup --reconfigure builddir un meson setup --wipe builddir ) ir atļautas ar tukšu builddir.
  • meson.add_install_script() pievienoja atbalstu atslēgvārdam dry_run, kas ļauj palaist savus instalācijas skriptus, izsaucot "meson install --dry-run".

Avots: opennet.ru

Pievieno komentāru