Meson build systeem release 1.3

De frijlitting fan it Meson 1.3.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.3:

  • Tafoege de opsje "werror: wier" oan de gearstaller kontrôle metoaden compiler.compiles (), compiler.links () en compiler.run (), dy't behannelet kompilator warskôgings as flaters (kin brûkt wurde om te kontrolearjen dat de koade is boud sûnder warskôgings ).
  • Hat_define metoade tafoege om symboaldefinysje te kontrolearjen troch preprocessor.
  • De parameter macro_name is tafoege oan 'e funksje configure_file () en tafoege makrobeskerming foar dûbele ferbiningen fia "#include" ("beskermers opnimme"), ûntworpen yn 'e styl fan makro's yn' e C-taal (mei dynamyske oanmeitsjen fan konfiguraasjebestannen ferienfâldigje makronammen).
  • In nij útfierformaat is tafoege oan configure_file() - JSON ("output_format: json").
  • De mooglikheid tafoege om weardelisten te brûken oan de parameters c_std en cpp_std (bygelyks "default_options: 'c_std=gnu11,c11′').
  • Yn modules dy't CustomTarget brûke om bestannen te ferwurkjen, is de mooglikheid om berjochtenútfier troch it ninja-hulpprogramma oan te passen tafoege.
  • De build_target "jar" is ôfret en de "jar()"-oprop wurdt ynstee oanrikkemandearre.
  • De parameter 'env' is tafoege oan de metoade generator.process() om de omjouwingsfariabele yn te stellen wêrmei't de generator ynfier sil ferwurkje.
  • By it opjaan fan build-doelnammen dy't ferbûn binne mei executables, binne efterheaksels lykas "executable('foo', 'main.c', name_suffix: 'bar')" tastien om ekstra útfierbere bestannen yn deselde map te generearjen.
  • Added de "vs_module_defs" parameter oan de útfierbere () funksje foar in gebrûk def triem dy't definiearret de list mei funksjes trochjûn oan shared_module ().
  • Added 'default_options' parameter oan find_program () funksje foar in set standert opsjes foar fallback subprojekt.
  • Added fs.relative_to () metoade, dy't jout de relative paad foar de earste argumint, relatyf oan de twadde, as de earste paad bestiet. Bygelyks, "fs.relative_to('/prefix/lib', '/prefix/bin') == '../lib')".
  • De folgjende_symlinks-parameter is tafoege oan de funksjes install_data(), install_headers() en install_subdir(); as ynsteld, wurde symboalyske keppelings folge.
  • In parameter "folje" is tafoege oan de metoade int.to_string () om de tekenrige ynkrementeel te foljen mei liedende nullen. Bygelyks, it oproppen fan berjocht(n.to_string(folje: 3)) foar n=4 sil de tekenrige "004" produsearje.
  • In nij doel tafoege, clang-tidy-fix, dat spesifisearret it útfieren fan it clang-tidy-hulpprogramma mei de flagge "-fix".
  • De mooglikheid om it efterheaksel (TARGET_SUFFIX) fan it gearstallingsdoel ([PATH_TO_TARGET/]TARGET_NAME.TARGET_SUFFIX[:TARGET_TYPE]) oan te jaan is tafoege oan it kompilaasjekommando.
  • Omjouwingsfariabele MESON_PACKAGE_CACHE_DIR tafoege om it paad nei it pakketcache te oerskriuwen (subprojects/packagecache), bygelyks, sadat jo in dielde cache kinne brûke yn ferskate projekten.
  • Tafoege "meson setup --clearcache" kommando om persistente cache te wiskjen.
  • Stipe foar it "fereaske" kaaiwurd is tafoege oan alle "has_*"-kompilatorkontrôlemetoaden, bygelyks, ynstee fan "assert(cc.has_function('some_function'))" kinne jo no "cc.has_function('some_function' opjaan) , fereaske: wier)".
  • In nij kaaiwurd, rust_abi, is tafoege oan de funksjes shared_library(), static_library(), library(), en shared_module(), dy't brûkt wurde moatte ynstee fan it ferâldere rust_crate_type.

Boarne: opennet.ru

Add a comment