Meson build systeem release 1.1

De frijlitting fan it Meson 1.1.0 buildsysteem is publisearre, dat wurdt brûkt om projekten te bouwen lykas X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME en GTK. De Meson-koade is skreaun yn Python en is lisinsje ûnder de Apache 2.0-lisinsje.

It wichtichste ûntwikkelingsdoel fan Meson is om in assemblageproses mei hege snelheid te leverjen kombineare mei gemak en gemak fan gebrûk. Ynstee fan meitsje, brûkt de build de Ninja toolkit standert, mar oare backends lykas xcode en VisualStudio kinne ek brûkt wurde. It systeem hat in ynboude multi-platfoarm ôfhinklikens handler wêrmei jo te brûken Meson te bouwen pakketten foar distribúsjes. Gearstallingsregels wurde ynsteld yn in ferienfâldige domein-spesifike taal, se binne goed lêsber en begryplik foar de brûker (neffens it idee fan 'e auteurs moat de ûntwikkelder in minimum tiid besteegje oan it skriuwen fan regels).

Cross-kompilearjen en bouwen op Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS en Windows mei GCC, Clang, Visual Studio en oare kompilatoren wurdt stipe. It is mooglik om projekten te bouwen yn ferskate programmeartalen, ynklusyf C, C++, Fortran, Java en Rust. In inkrementele boumodus wurdt stipe, wêrby't allinich komponinten dy't direkt relatearre binne oan feroarings makke sûnt de lêste build wurde opnij boud. Meson kin brûkt wurde om werhellbere builds te generearjen, wêrby't it útfieren fan de build yn ferskate omjouwings resulteart yn folslein identike útfierbere bestannen.

De wichtichste ynnovaasjes fan Meson 1.1:

  • In nij argumint "objekten:" is tafoege oan declare_dependency () om objekten direkt te heakjen oan útfierbere bestannen yn 'e foarm fan ynterne ôfhinklikens dy't it gebrûk fan link_who net nedich binne.
  • It kommando "meson devenv -dump" hat no de opsje om in bestân op te jaan om omjouwingsfariabelen nei te skriuwen ynstee fan it te printsjen nei standertútfier.
  • Added FeatureOption.enable_if- en FeatureOption.disable_if-metoaden om it makliker te meitsjen om betingsten te meitsjen as tarieding op it trochjaan fan parameters nei de funksje ôfhinklikheid (). opt = get_option('funksje').disable_if(net foo, error_message: 'Kin funksje net ynskeakelje as foo net ek ynskeakele is') dep = dependency('foo', fereaske: opt)
  • It trochjaan fan generearre objekten as arguminten nei "objekten:" is tastien.
  • De projektfunksje stipet no it ynstallearjen fan bestannen mei ynformaasje oer projektlisinsjes.
  • It útfieren fan "sudo meson install" soarget derfoar dat privileezjes weromsette wurde by werbou foar doelplatfoarms.
  • It kommando "meson install" jout de mooglikheid om in aparte handler op te jaan foar it krijen fan root-rjochten (jo kinne bygelyks polkit, sudo, opendoas of $MESON_ROOT_CMD kieze). It útfieren fan "meson install" yn net-ynteraktive modus besiket net mear privileezjes te eskalearjen.
  • Stipe tafoege foar it lêzen fan opsjes fan it meson.options-bestân ynstee fan meson_options.txt.
  • Omlieding fan ynformaasje oer de fuortgong fan yntrospeksje nei stderr wurdt levere.
  • In nije "gjin" backend tafoege (--backend=gjin) om projekten te meitsjen dy't allinich ynstallaasjeregels hawwe en gjin bouregels.
  • In nije ôfhinklikens pybind11 tafoege, wêrtroch dependency ('pybind11') kin wurkje mei pkg-config en cmake sûnder it pybind11-config-skript te brûken.
  • De "--reconfigure" en "--wipe" opsjes binne tastien (meson setup --reconfigure builddir en meson setup --wipe builddir ) mei in lege builddir.
  • Stipe tafoege foar it dry_run-kaaiwurd oan meson.add_install_script() om it útfieren fan jo eigen ynstallaasjeskripts mooglik te meitsjen by it neamen fan "meson install --dry-run".

Boarne: opennet.ru

Add a comment