Meson Build System Verëffentlechung 1.3

D'Verëffentlechung vum Meson 1.3.0 Build System gouf publizéiert, wat benotzt gëtt fir Projeten wéi X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME a GTK ze bauen. De Meson Code ass am Python geschriwwen an ass ënner der Apache 2.0 Lizenz lizenzéiert.

De Schlësselentwécklungsziel vu Meson ass e High-Speed-Versammlungsprozess kombinéiert mat Komfort an einfacher Benotzung. Amplaz ze maachen, benotzt de Build den Ninja Toolkit als Standard, awer aner Backends wéi xcode a VisualStudio kënnen och benotzt ginn. 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 gesat, si gutt liesbar a verständlech fir de Benotzer (no der Iddi vun den Auteuren, soll den Entwéckler e Minimum vun Zäit Schreiwen Regelen verbréngen).

Cross-compiling a bauen op Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS a Windows mat GCC, Clang, Visual Studio an aner Compilere gëtt ënnerstëtzt. Et ass méiglech Projeten a verschiddene Programméierungssproochen ze bauen, dorënner C, C++, Fortran, Java a Rust. En inkrementelle Baumodus gëtt ënnerstëtzt, an deem nëmme Komponenten, déi direkt mat Ännerungen, déi zënter dem leschte Bau gemaach goufen, opgebaut ginn. Meson ka benotzt ginn fir widderhuelend Builds ze generéieren, wou de Build a verschiddenen Ëmfeld laafen komplett identesch Ausféierbar resultéiert.

Haaptinnovatiounen vum Meson 1.3:

  • D'Optioun "werror: true" an de Compiler Check Methoden bäigefüügt compiler.compiles (), compiler.links () an compiler.run (), déi Compiler Warnungen als Feeler behandelt (kann benotzt ginn fir ze kontrolléieren ob de Code ouni Warnungen gebaut ass) ).
  • Derbäi has_define Method fir d'Symboldefinitioun duerch Preprocessor ze kontrolléieren.
  • De macro_name Parameter gouf op d'Funktioun configure_file () bäigefüügt, andeems de Makroschutz fir duebel Verbindungen duerch "#include" ("Include Guards") bäigefüügt gouf, am Stil vun Makroen an der C Sprooch entworf (vereinfacht d'Schafung vu Konfiguratiounsdateien mat dynamescher Makro Nimm).
  • En neit Ausgangsformat gouf op configure_file () - JSON ("output_format: json") bäigefüügt.
  • D'Fäegkeet bäigefüügt fir Lëschte vu Wäerter un d'c_std an cpp_std Parameteren ze benotzen (zum Beispill "default_options: 'c_std=gnu11,c11′').
  • A Moduler déi CustomTarget benotze fir Dateien ze verarbeiten, ass d'Fäegkeet fir d'Botschafte vun der Ninja Utility ze personaliséieren.
  • De build_target "jar" gouf ofgeschaaft an den "jar()" Uruff gëtt amplaz recommandéiert.
  • De Parameter 'env' gouf an d'Generator.process () Method bäigefüügt fir d'Ëmfeldvariabel ze setzen duerch déi de Generator den Input veraarbecht.
  • Wann Dir Bauzielnimm spezifizéieren, déi mat Ausféierbaren assoziéiert sinn, sinn Suffixe wéi "executable('foo', 'main.c', name_suffix: 'bar')" erlaabt zousätzlech Ausféierbaren am selwechte Verzeechnes ze generéieren.
  • Der "vs_module_defs" Parameter zu der exektuable () Funktioun bäigefüügt fir eng Def Datei ze benotzen déi d'Lëscht vun de Funktiounen definéiert, déi op shared_module () weidergeleet ginn.
  • Added 'default_options' Parameter zu find_program () Funktioun fir Standardoptioune fir Fallback Ënnerprojet ze setzen.
  • Dobäi fs.relative_to () Method, déi de relativ Wee fir déi éischt Argument zréck, relativ zu der zweeter, wann den éischte Wee existéiert. Zum Beispill, "fs.relative_to('/prefix/lib', '/prefix/bin') == '../lib')".
  • De folgende_symlinks Parameter gouf zu den install_data (), install_headers () an install_subdir () Funktiounen bäigefüügt; wann se agestallt sinn, ginn symbolesch Links gefollegt.
  • E "fill" Parameter gouf op d'int.to_string () Method bäigefüügt fir d'String inkrementell mat führenden Nullen ze fëllen. Zum Beispill, rufft Message (n.to_string (fill: 3)) fir n = 4 wäert d'String "004" produzéieren.
  • En neit Zil bäigefüügt, clang-tidy-fix, dat spezifizéiert datt de clang-tidy Utility mam "-fix" Fändel leeft.
  • D'Kapazitéit fir de Suffix (TARGET_SUFFIX) vum Versammlungsziel ze spezifizéieren ([PATH_TO_TARGET/]TARGET_NAME.TARGET_SUFFIX[:TARGET_TYPE]) gouf zum Compile Kommando bäigefüügt.
  • Derbäi Ëmweltvariabel MESON_PACKAGE_CACHE_DIR fir de Wee op de Package Cache ze iwwerschreiden (Subprojects/packagecache), zum Beispill, erlaabt Iech e gemeinsame Cache a verschiddene Projeten ze benotzen.
  • Zousätzlech "Meson Setup --clearcache" Kommando fir persistent Cache ze läschen.
  • Ënnerstëtzung fir dat "erfuerdert" Schlësselwuert gouf op all "has_*" Compiler Check Methoden bäigefüügt, zum Beispill, amplaz "assert(cc.has_function('some_function'))" kënnt Dir elo "cc.has_function('some_function' spezifizéieren) , obligatoresch: richteg)".
  • En neit Schlësselwuert, rust_abi, gouf an d'shared_library (), static_library (), library () a shared_module () Funktiounen bäigefüügt, déi solle benotzt ginn amplaz vum deprecéierten rust_crate_type.

Source: opennet.ru

Setzt e Commentaire