Meson Build System Verëffentlechung 0.52

publizéiert bauen System Verëffentlechung Meson 0.52, déi benotzt gëtt fir Projete wéi X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME a GTK+ ze bauen. De Meson Code ass a Python geschriwwen a geliwwert lizenzéiert ënner Apache 2.0.

D'Schlësselziel vun der Meson Entwécklung ass héich Geschwindegkeet vum Montageprozess kombinéiert mat Komfort an einfacher Benotzung. Amplaz vum Make Utility benotzt de Standardbau den Toolkit Ninja, awer et ass och méiglech aner Backends ze benotzen, wéi xcode a VisualStudio. De System huet en agebaute Multi-Plattform Ofhängegkeet Handler deen Iech erlaabt Meson ze benotzen fir Packagen fir Verdeelungen ze bauen. Assemblée Regelen sinn an enger vereinfacht Domain-spezifesch Sprooch spezifizéiert, sinn héich liesbar a verständlech fir de Benotzer (wéi vun den Auteuren virgesi, den Entwéckler soll e Minimum vun Zäit Schreiwen Regelen verbréngen).

Ënnerstëtzt Cross-compile a bauen op Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS a Windows mat GCC, Clang, Visual Studio an aner Compilers. Et ass méiglech Projeten a verschiddene Programméierungssproochen ze bauen, dorënner C, C++, Fortran, Java a Rust. Inkrementelle Baumodus gëtt ënnerstëtzt, an deem nëmmen Komponenten déi direkt mat Ännerungen gemaach goufen zënter dem leschte Bau nei opgebaut ginn. Meson ka benotzt ginn fir widderhuelend Builds ze generéieren, an deenen de Build a verschiddenen Ëmfeld leeft zu der Generatioun vu komplett identeschen ausführbaren Dateien.

Haaptstrooss Innovatiounen Meson 0.52:

  • Zousätzlech experimentell Ënnerstëtzung fir Webassembly benotzt Emscripten als Compiler;
  • Ënnerstëtzung fir d'Illumos a Solaris Plattformen gouf wesentlech verbessert an an d'Aarbechtskonditioun bruecht;
  • Assuréiert datt gettext-baséiert Internationaliséierungsskripte ignoréiert ginn wann de System net de gettext Toolkit installéiert huet (virdrun gouf e Feeler ugewisen wann Dir den i18n Modul op Systemer ouni gettext benotzt);
  • Verbesserte Ënnerstëtzung fir statesch Bibliothéiken. Vill Problemer beim Gebrauch vun deinstalléierte statesche Bibliothéike goufen geléist;
  • D'Fäegkeet bäigefüügt fir Dictionnairen ze benotzen fir Ëmfeldvariablen ze ginn. Wann Dir Ëmfeld rufft (), kann dat éischt Element elo als Wierderbuch spezifizéiert ginn an deem Ëmfeldvariablen a Schlëssel- / Wäertform definéiert sinn. Dës Variablen ginn op environment_object transferéiert wéi wa se individuell iwwer d'Set () Method gesat goufen. Dictionnairen kënnen och elo op verschidde Funktiounen weidergeleet ginn, déi en "env" Argument ënnerstëtzen;
  • Zousätzlech Funktioun "runtarget alias_target(target_name, dep1, ...)" déi en neit éischte-Niveau Build-Zil erstellt, dee mam gewielte Build-Backend genannt ka ginn (z.B. "Ninja target_name"). Dëst Build Zil leeft keng Kommandoen, awer garantéiert datt all Ofhängegkeete gebaut ginn;
  • Aktivéiert automatesch Astellung vun der PKG_CONFIG_SYSROOT_DIR Ëmfeldvariabel während der Cross-Compilation wann et e sys_root-Astellung an der Rubrik "[Properties]" gëtt;
  • D'Optioun "--gdb-path" bäigefüügt fir de Wee zum GDB Debugger ze bestëmmen wann Dir d'Optioun "--gdb testname" spezifizéiert fir GDB mat dem spezifizéierte Testskript ze lafen;
  • Automatesch Erkennung vun der clang-toyy Build-Zil bäigefüügt fir dës Linter mat all Quelldateien auszeféieren. D'Zil gëtt erstallt wann clang-tidy am System verfügbar ass an d'Datei ".clang-tidy" (oder "_clang-tidy") ass an der Projektwurzel definéiert;
  • Added Ofhängegkeet ('Blocks') fir an der Clang Extensioun ze benotzen Bléck;
  • D'Linker a Compiler Meenungen sinn getrennt, sou datt verschidde Kombinatioune vu Compileren a Linker benotzt kënne ginn;
  • Added all_dependencies () Method zu SourceSet Objete zousätzlech zu all_sources () Method;
  • Am run_project_tests.py ass d'Optioun "--nëmmen" bäigefüügt fir selektiv Tester auszeféieren (zum Beispill "python run_project_tests.py -nëmmen fortran python3");
  • D'Find_program() Funktioun huet elo d'Fäegkeet fir nëmmen no erfuerderleche Versioune vun engem Programm ze sichen (d'Versioun gëtt festgeluegt andeems de Programm mat der Optioun "-version" leeft);
  • Fir den Export vu Symboler ze kontrolléieren, ass d'Optioun vs_module_defs op d'Funktioun shared_module () bäigefüügt, ähnlech wéi shared_library ();
  • De kconfig Modul gouf erweidert fir configure_file () z'ënnerstëtzen fir eng Inputdatei ze spezifizéieren;
  • D'Fähigkeit bäigefüügt fir verschidde Inputdateien fir "Command:" Handler fir configure_file ();
  • De Kommando "dist" fir en Archiv ze kreéieren gouf an d'Kategorie vun den éischte-Niveau Kommandoen geplënnert (virdrun war de Kommando un Ninja gebonnen). D'Optioun "--formats" bäigefüügt fir d'Typen vun den Archiven ze definéieren déi erstallt ginn (zum Beispill,
    "meson dist -formats=xztar,zip").

Source: opennet.ru

Setzt e Commentaire