S'ha publicat el llançament del sistema de compilació Meson 1.4.0, que s'utilitza per crear projectes com ara X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME i GTK. El codi Meson està escrit en Python i té la llicència d'Apache 2.0.
L'objectiu clau de desenvolupament de Meson és proporcionar un procés de muntatge d'alta velocitat combinat amb comoditat i facilitat d'ús. En lloc de fer, la compilació utilitza el conjunt d'eines Ninja de manera predeterminada, però també es poden utilitzar altres backends com xcode i VisualStudio. El sistema té un gestor de dependències multiplataforma integrat que us permet utilitzar Meson per crear paquets per a distribucions. Les regles de muntatge s'estableixen en un llenguatge simplificat específic del domini, són ben llegibles i comprensibles per a l'usuari (segons la idea dels autors, el desenvolupador hauria de dedicar un mínim de temps a escriure regles).
Es permet la compilació creuada i l'assemblatge. Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS и Windows Ús de GCC, Clang, Visual Studio i altres compiladors. Els projectes es poden crear en diversos llenguatges de programació, com ara C, C++, Fortran, Java i Rust. S'admet el mode de compilació incremental, que reconstrueix només els components directament relacionats amb els canvis realitzats des de la compilació anterior. Meson es pot utilitzar per crear compilacions repetibles, on l'execució de la compilació en diferents entorns genera fitxers executables completament idèntics.
Principals innovacions de Meson 1.4:
- Les funcions fs.name, fs.parent, fs.replace_suffix i fs.stem del mòdul FS ara admeten els objectes de destinació de compilació build_tgt i custom_tgt, així com l'índex de destinació de compilació (custom_idx).
- S'ha afegit la possibilitat de llegir la versió del projecte dels subprojectes basats en CMake.
- S'ha proporcionat la possibilitat de controlar les comprovacions d'afirmació (GLIBCXX_ASSERTIONS) en C++ stdlib mitjançant la configuració ndebug.
- S'ha afegit el suport de Clang a stldebug (quan debugstl està habilitat, ara estan configurats "-D_GLIBCXX_DEBUG=1" i "-D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_DEBUG).
- S'ha afegit el mètode unset() a l'objecte env.
- S'ha afegit el mètode full_path() a l'objecte File per obtenir el camí complet al fitxer.
- S'ha afegit suport per especificar les vostres pròpies dependències per a numpy (dependency('numpy')).
- S'ha afegit un paràmetre "depèn" al mètode compiler.preprocess(), que us permet especificar un objectiu de compilació dependent per a compiler.preprocess().
- A les funcions compile_ui, compile_moc i preprocess dels mòduls qt4, qt5 i qt6, s'ha afegit l'argument preserve_paths per seleccionar l'opció per crear l'estructura de directoris per als fitxers que s'escriuen (si el valor és cert - "{target private directory} /subdir/one.out", i si és fals - "{directori privat de destinació}/one.out").
- El generador d'enllaços Bindgen admet l'ús de l'heurística de Meson per determinar els fitxers de capçalera C++.
- S'ha afegit la possibilitat d'anul·lar la configuració d'idioma per a Bindgen (per exemple, per tractar els fitxers amb l'extensió .h com a fitxers de capçalera per a C++).
- Ara les proves fallen de manera predeterminada després dels errors trobats en executar desinfectants com MemorySanitizer.
- S'ha afegit suport per al compilador C/C++ de Texas Instruments per a la família de CPU C6000.
Font: opennet.ru
