Meson Build System Verëffentlechung 0.51

publizéiert bauen System Verëffentlechung Meson 0.51, 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).

Cross-compiling a bauen op Linux, 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. 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.51:

  • Zousätzlech Ënnerstëtzung fir transparent Bau vun existente Projeten déi CMake Build Scripte benotzen. Meson kann elo direkt einfach Ënnerprojeten bauen (wéi eenzel Bibliothéiken) mat dem CMake Modul, ähnlech wéi Standard Ënnerprojeten (inklusiv CMake Ënnerprojeten kënnen an de Subprojects Verzeichnis gesat ginn);
  • Fir all benotzte Compiler ass virleefeg Tester abegraff duerch d'Assemblée an d'Ausféierung vun einfachen Testdateien (Sanity Check), net limitéiert op d'Test vun de Benotzer spezifizéierte Fändelen fir Cross-Compiler (vun elo un, Compilers gebierteg op déi aktuell Plattform ginn och gepréift) .
  • D'Fähigkeit bäigefüügt fir Kommandozeiloptiounen ze definéieren déi während der Cross-Kompilatioun benotzt ginn, mat Bindung andeems Dir e Plattformpräfix virun der Optioun spezifizéiert. Virdrun hunn Kommandozeiloptiounen nëmmen gebierteg Build ofgedeckt a konnten net fir Cross-Kompilatioun spezifizéiert ginn. Kommandozeiloptiounen gëllen elo egal ob Dir gebierteg oder Cross-Compiling baut, garantéiert datt gebierteg a Cross-builds identesch Resultater produzéieren;
  • D'Fähigkeit bäigefüügt fir den "--cross-file" Fändel méi wéi eemol op der Kommandozeil ze spezifizéieren fir verschidde Cross-Dateien ze lëschten;
  • Zousätzlech Ënnerstëtzung fir den ICL Compiler (Intel C / C ++ Compiler) fir d'Windows Plattform (ICL.EXE an ifort);
  • Zousätzlech initial Toolkit Support fir CPU Xtensa (xt-xcc, xt-xc++, xt-nm);
  • D'Methode "get_variable" gouf zum Objekt "Ofhängegkeet" bäigefüügt, wat Iech erlaabt de Wäert vun enger Variabel ze kréien ouni d'Aart vun der aktueller Ofhängegkeet ze berücksichtegen (zum Beispill dep.get_variable(pkg-config : 'var- Numm', cmake: 'COP_VAR_NAME));
  • En neit Argument fir Zilversammlungsoptioune bäigefüügt, "link_language", fir explizit d'Sprooch ze spezifizéieren déi benotzt gëtt wann de Linker rufft. Zum Beispill, en Haapt Fortran Programm kéint C / C ++ Code Opruff, déi automatesch wielt C / C ++ wann de Fortran Linker soll benotzt ginn;
  • D'Handhabung vun CPPFLAGS Preprocessor Fändelen gouf geännert. Wou Meson virdru CPPFLAGS a Sproochspezifesch Kompiléierungsfändelen (CFLAGS, CXXFLAGS) getrennt gespäichert hunn, ginn se elo onseparabel veraarbecht an d'Fändelen, déi an CPPFLAGS opgezielt sinn, ginn als eng aner Quell vu Kompiléierungsfändelen fir Sproochen benotzt déi se ënnerstëtzen;
  • D'Output vu custom_target an custom_target[i] kann elo als Argumenter an de link_with an link_whole Operatiounen benotzt ginn;
  • Generatoren hunn elo d'Fäegkeet fir zousätzlech Ofhängegkeete mat der "depends" Optioun ze spezifizéieren (zum Beispill Generator (program_runner, Ausgab: ['@)[Email geschützt]'], hänkt: exe));
  • Eng statesch Optioun fir find_library bäigefüügt fir datt d'Sich nëmmen statesch verlinkte Bibliothéiken enthält;
  • Fir python.find_installation, d'Fähegkeet d'Präsenz vun engem bestëmmte Python Modul fir eng spezifesch Versioun vun Python ze bestëmmen dobäi;
  • Neie Modul unstable-kconfig bäigefüügt fir kconfig Dateien ze analyséieren;
  • En neie Kommando "subprojects foreach" bäigefüügt, deen e Kommando mat Argumenter hëlt an et an all Ënnerprojetverzeichnisser leeft;

Source: opennet.ru

Setzt e Commentaire