Versión 1.1 del sistema de compilación Meson

Se ha publicado el lanzamiento del sistema de compilación Meson 1.1.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 el ensamblaje. Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS и Windows Utiliza GCC, Clang, Visual Studio y otros compiladores. Los proyectos se pueden compilar en diversos lenguajes de programación, como C, C++, Fortran, Java y Rust. Admite el modo de compilación incremental, que recompila únicamente los componentes directamente relacionados con los cambios realizados desde la compilación anterior. Meson permite crear compilaciones repetibles, donde al ejecutar la compilación en diferentes entornos se generan archivos ejecutables idénticos.

Principales novedades de Meson 1.1:

  • Se ha agregado un nuevo argumento "objetos:" a declare_dependency() para adjuntar objetos directamente a los ejecutables como dependencias internas que no requieren link_who.
  • El comando "meson devenv --dump" tiene la capacidad opcional de especificar un archivo para escribir variables de entorno, en lugar de generar el flujo de salida estándar.
  • Se agregaron los métodos FeatureOption.enable_if y FeatureOption.disable_if para facilitar la creación de condicionales en preparación para pasar parámetros a la función dependency(). opt = get_option('feature').disable_if(not foo, error_message: 'No se puede habilitar la función cuando foo no está también habilitado') dep = dependencia('foo', requerido: opt)
  • Se permite pasar objetos generados entre los argumentos "objetos:".
  • La función de proyecto admite la instalación de archivos con información sobre licencias de proyectos.
  • La ejecución de "sudo meson install" garantiza el restablecimiento de privilegios durante la reconstrucción para las plataformas de destino.
  • El comando "meson install" ofrece la posibilidad de especificar un controlador independiente para obtener permisos de root (por ejemplo, puede seleccionar polkit, sudo, opendoas o $MESON_ROOT_CMD). Ejecutar "meson install" en modo no interactivo ya no intenta elevar los privilegios.
  • Se agregó soporte para leer opciones del archivo meson.options en lugar de meson_options.txt.
  • Redirección proporcionada a stderr de la salida de información sobre el progreso de la introspección.
  • Se ha agregado un nuevo backend "ninguno" (--backend=none) para crear proyectos que solo tienen reglas de instalación y no reglas de compilación.
  • Se agregó una nueva dependencia pybind11 para hacer que la dependencia ('pybind11') funcione con pkg-config y cmake sin usar el script pybind11-config.
  • Las opciones "--reconfigure" y "--wipe" (meson setup --reconfigure builddir y meson setup --wipe builddir ) están permitidas con un builddir vacío.
  • meson.add_install_script() agregó compatibilidad con la palabra clave dry_run, que le permite ejecutar sus propios scripts de instalación al llamar a "meson install --dry-run".

Fuente: opennet.ru

Compre alojamiento confiable para sitios con protección DDoS, servidores VPS VDS 🔥 Compra alojamiento web fiable con protección DDoS, servidores VPS VDS | ProHoster