Versión 1.0 del sistema de compilación Meson

Se ha publicado el lanzamiento del sistema de compilación Meson 1.0.0, que se utiliza para compilar proyectos como X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME y GTK. El código de Meson está escrito en Python y tiene la licencia Apache 2.0.

El objetivo clave de desarrollo de Meson es proporcionar un proceso de ensamblaje de alta velocidad combinado con comodidad y facilidad de uso. En lugar de hacer, la compilación usa el kit de herramientas Ninja de forma predeterminada, pero también se pueden usar otros backends como xcode y VisualStudio. El sistema tiene un controlador de dependencia multiplataforma incorporado que le permite usar Meson para crear paquetes para distribuciones. Las reglas de ensamblaje se establecen en un lenguaje específico de dominio simplificado, son bien legibles y comprensibles para el usuario (según la idea de los autores, el desarrollador debe dedicar un mínimo de tiempo a escribir reglas).

Se admite la compilación cruzada y la compilación en Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS y Windows mediante GCC, Clang, Visual Studio y otros compiladores. Es posible construir proyectos en varios lenguajes de programación, incluidos C, C++, Fortran, Java y Rust. Se admite un modo de compilación incremental, en el que solo se reconstruyen los componentes que están directamente relacionados con los cambios realizados desde la última compilación. Meson se puede usar para generar compilaciones repetibles, donde ejecutar la compilación en diferentes entornos da como resultado ejecutables completamente idénticos.

Principales novedades de Meson 1.0:

  • El módulo para construir proyectos en lenguaje Rust ha sido declarado estable. Este módulo se utiliza en el proyecto Mesa para construir componentes escritos en Rust.
  • Compatible con la mayoría de las funciones de verificación del compilador, la opción de prefijo implementa la capacidad de manejar matrices distintas de cadenas. Por ejemplo, ahora puede especificar: cc.check_header('GL/wglew.h', prefijo: ['#include ', '#incluir '])
  • Se agregó un nuevo argumento "--workdir" para permitirle anular el directorio de trabajo. Por ejemplo, para utilizar el directorio actual en lugar del directorio de trabajo, puede ejecutar: meson devenv -C builddir --workdir .
  • Se proponen nuevos operadores "en" y "no en" para determinar la aparición de una subcadena en una cadena, similar a la verificación disponible anteriormente para la aparición de un elemento en una matriz o diccionario. Por ejemplo: fs = import('fs') si 'algo' en fs.read('algún archivo') # True endif
  • Se agregó la opción "warning-level=everything" para activar la salida de todas las advertencias del compilador disponibles (en clang y MSVC usa -Weverything y /Wall, y en GCC se incluyen advertencias separadas, que corresponden aproximadamente al modo -Weverything en clang).
  • El método rust.bindgen implementa la capacidad de procesar el argumento "dependencias" para pasar rutas a las dependencias que el compilador debe procesar.
  • La función java.generate_native_headers ha quedado obsoleta y se le ha cambiado el nombre a java.native_headers para que coincida con el estilo de nomenclatura de funciones generales de Meson.

Fuente: opennet.ru

Añadir un comentario