Meson build systeem release 0.52

publisearre build systeem release Meson 0.52, 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 levere lisinsje ûnder Apache 2.0.

It wichtichste doel fan Meson-ûntwikkeling is om hege snelheid te leverjen fan it assemblageproses kombineare mei gemak en gemak fan gebrûk. Ynstee fan it make-hulpprogramma brûkt de standertbuild de toolkit ninja, mar it is ek mooglik om oare backends te brûken, lykas xcode en VisualStudio. It systeem hat in ynboude multi-platfoarm ôfhinklikens handler wêrmei jo te brûken Meson te bouwen pakketten foar distribúsjes. Gearstallingsregels wurde spesifisearre yn in ferienfâldige domein-spesifike taal, binne tige lêsber en begryplik foar de brûker (lykas bedoeld troch de auteurs, de ûntwikkelder moat in minimum tiid besteegje oan it skriuwen fan regels).

Stipe cross-compile en bouwe op Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS en Windows mei GCC, Clang, Visual Studio en oare kompilatoren. It is mooglik om projekten te bouwen yn ferskate programmeartalen, ynklusyf C, C++, Fortran, Java en Rust. Inkrementele boumodus wurdt stipe, wêrby't allinich komponinten dy't direkt relatearre binne oan feroarings makke sûnt de lêste bou 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 de generaasje fan folslein identike útfierbere bestannen.

haad ynnovaasjes Meson 0.52:

  • Eksperimintele stipe tafoege foar Webassembly mei Emscripten as kompiler;
  • Stipe foar de Illumos en Solaris platfoarms is gâns ferbettere en brocht oan wurkjende steat;
  • Soarget derfoar dat gettext-basearre ynternasjonalisearring skripts wurde negearre as it systeem hat net de gettext toolkit ynstallearre (earder waard in flater werjûn by it brûken fan de i18n module op systemen sûnder gettext);
  • Ferbettere stipe foar statyske bibleteken. In protte problemen by it brûken fan net-ynstallearre statyske bibleteken binne oplost;
  • De mooglikheid tafoege om wurdboeken te brûken om omjouwingsfariabelen ta te jaan. By it oproppen fan omjouwing (), kin it earste elemint no wurde oantsjutte as in wurdboek wêryn omjouwingsfariabelen wurde definieare yn kaai-/weardefoarm. Dizze fariabelen sille wurde oerdroegen oan environment_object as wiene se yndividueel ynsteld fia de set () metoade. Wurdboeken kinne no ek trochjûn wurde oan ferskate funksjes dy't in "env" argumint stypje;
  • Tafoege funksje "runtarget alias_target(target_name, dep1, ...)" dy't in nij earste-nivo build-doel makket dat kin wurde neamd mei de selektearre build-backend (bgl. "ninja target_name"). Dit boudoel rint gjin kommando's, mar soarget derfoar dat alle ôfhinklikens boud wurde;
  • Ynskeakele automatyske ynstelling fan de PKG_CONFIG_SYSROOT_DIR omjouwingsfariabele tidens cross-kompilaasje as der in sys_root ynstelling yn de "[eigenskippen]" seksje;
  • Added "--gdb-path" opsje om it paad nei de GDB debugger te bepalen by it oantsjutte fan de "--gdb testname" opsje om GDB út te fieren mei it oantsjutte testskript;
  • Tafoege automatyske deteksje fan it clang-tidy build doel om dizze linter út te fieren mei alle boarnebestannen. It doel wurdt makke as clang-tidy beskikber is yn it systeem en de triem ".clang-tidy" (of "_clang-tidy") is definiearre yn 'e projektroot;
  • Ofhinklikens tafoege ('blokken') foar gebrûk yn 'e Clang-útwreiding Blocks;
  • De linker- en kompilerwerjeften binne skieden, wêrtroch ferskate kombinaasjes fan gearstallers en linkers kinne wurde brûkt;
  • Added all_dependencies () metoade oan SourceSet objekten neist all_sources () metoade;
  • Yn run_project_tests.py is de opsje "--allinnich" tafoege om selektyf tests út te fieren (bygelyks "python run_project_tests.py -only fortran python3");
  • De funksje find_program() hat no de mooglikheid om allinich te sykjen nei fereaske ferzjes fan in programma (de ferzje wurdt bepaald troch it programma út te fieren mei de opsje "-version");
  • Om de eksport fan symboalen te kontrolearjen, is de opsje vs_module_defs tafoege oan de shared_module () funksje, fergelykber mei shared_library ();
  • De module kconfig is útwreide om configure_file () te stypjen foar it opjaan fan in ynfierbestân;
  • Tafoege de mooglikheid om oantsjutte meardere ynfier triemmen foar "kommando:" handlers to configure_file ();
  • It kommando "dist" foar it meitsjen fan in argyf is ferpleatst nei de kategory fan kommando's op earste nivo (earder wie it kommando bûn oan ninja). Tafoege "--formats" opsje om de soarten argiven te definiearjen dy't moatte wurde oanmakke (bygelyks,
    "meson dist -formats=xztar,zip").

Boarne: opennet.ru

Add a comment