Meson build system release 1.1

S'ha publicat el llançament del sistema de compilació Meson 1.1.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).

S'admet la compilació creuada i la creació a Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS i Windows mitjançant GCC, Clang, Visual Studio i altres compiladors. És possible construir projectes en diversos llenguatges de programació, inclosos C, C++, Fortran, Java i Rust. S'admet un mode de construcció incremental, en el qual només es reconstrueixen els components que estan directament relacionats amb els canvis fets des de l'última compilació. Meson es pot utilitzar per generar compilacions repetibles, on executar la compilació en diferents entorns dóna com a resultat executables completament idèntics.

Principals innovacions de Meson 1.1:

  • S'ha afegit un nou argument "objectes:" a declare_dependency() per adjuntar objectes directament als executables en forma de dependències internes que no requereixen l'ús de link_who.
  • L'ordre "meson devenv -dump" ara té l'opció d'especificar un fitxer per escriure variables d'entorn en lloc d'imprimir-lo a la sortida estàndard.
  • S'han afegit els mètodes FeatureOption.enable_if i FeatureOption.disable_if per facilitar la creació de condicionals en preparació per passar paràmetres a la funció dependència (). opt = get_option('feature').disable_if(not foo, error_message: 'No es pot activar la funció quan foo també no està habilitat') dep = dependance('foo', required: opt)
  • Es permet passar objectes generats com a arguments a "objectes:".
  • La funció de projecte ara admet la instal·lació de fitxers amb informació sobre les llicències del projecte.
  • L'execució de "sudo meson install" garanteix que els privilegis es restableixin durant les reconstruccions de les plataformes de destinació.
  • L'ordre "meson install" ofereix la possibilitat d'especificar un controlador separat per obtenir drets d'arrel (per exemple, podeu triar polkit, sudo, opendoas o $MESON_ROOT_CMD). L'execució de "meson install" en mode no interactiu ja no intenta augmentar els privilegis.
  • S'ha afegit suport per a les opcions de lectura del fitxer meson.options en lloc de meson_options.txt.
  • Es proporciona la redirecció de la informació sobre el progrés de la introspecció a stderr.
  • S'ha afegit un nou backend "none" (--backend=none) per crear projectes que només tinguin regles d'instal·lació i sense regles de compilació.
  • S'ha afegit una nova dependència pybind11, que permet a dependència('pybind11') treballar amb pkg-config i cmake sense utilitzar l'script pybind11-config.
  • Les opcions "--reconfigure" i "--wipe" estan permeses (meson setup --reconfigure builddir i meson setup --wipe builddir ) amb un builddir buit.
  • S'ha afegit suport per a la paraula clau dry_run a meson.add_install_script() per permetre l'execució dels vostres propis scripts d'instal·lació quan crideu "meson install --dry-run".

Font: opennet.ru

Afegeix comentari