Versión 1.0 do sistema de compilación Meson

Publicouse a versión do sistema de compilación Meson 1.0.0, que se usa para construír proxectos como X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME e GTK. O código Meson está escrito en Python e está licenciado baixo a licenza Apache 2.0.

O obxectivo clave de desenvolvemento de Meson é proporcionar un proceso de montaxe de alta velocidade combinado con comodidade e facilidade de uso. En lugar de facer, a compilación usa o conxunto de ferramentas Ninja de forma predeterminada, pero tamén se poden usar outros backends como xcode e VisualStudio. O sistema ten incorporado un controlador de dependencias multiplataforma que che permite usar Meson para crear paquetes para distribucións. As regras de montaxe están establecidas nunha linguaxe simplificada específica do dominio, son ben lexibles e comprensibles para o usuario (segundo a idea dos autores, o desenvolvedor debería dedicar un mínimo de tempo a escribir regras).

Admítese a compilación cruzada e a creación en Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS e Windows mediante GCC, Clang, Visual Studio e outros compiladores. É posible construír proxectos en varias linguaxes de programación, incluíndo C, C++, Fortran, Java e Rust. Admítese un modo de compilación incremental, no que só se reconstruíron os compoñentes que están directamente relacionados cos cambios realizados desde a última compilación. Meson pódese usar para xerar compilacións repetibles, onde a execución da compilación en diferentes ambientes dá lugar a executables completamente idénticos.

Principais innovacións de Meson 1.0:

  • O módulo para proxectos de construción en lingua Rust foi declarado estable. Este módulo úsase no proxecto Mesa para construír compoñentes escritos en Rust.
  • Soportada pola maioría das funcións de verificación do compilador, a opción de prefixo implementa a capacidade de manexar matrices que non sexan cadeas. Por exemplo, agora pode especificar: cc.check_header('GL/wglew.h', prefixo: ['#include ', '#include '])
  • Engadiuse un novo argumento "--workdir" para permitirche anular o directorio de traballo. Por exemplo, para usar o directorio actual en lugar do directorio de traballo, pode executar: meson devenv -C builddir --workdir .
  • Propóñense novos operadores "in" e "not in" para determinar a aparición dunha subcadea nunha cadea, de xeito similar á verificación dispoñible anteriormente para a aparición dun elemento nunha matriz ou dicionario. Por exemplo: fs = import('fs') if 'algo' en fs.read('somefile') # True endif
  • Engadida a opción "warning-level=everything" para activar a saída de todos os avisos do compilador dispoñibles (en clang e MSVC usa -Weverything e /Wall, e en GCC inclúense avisos separados, que corresponden aproximadamente ao modo -Weverything en clang).
  • O método rust.bindgen implementa a capacidade de procesar o argumento "dependencias" para pasar camiños ás dependencias que deben ser procesadas polo compilador.
  • A función java.generate_native_headers quedou en desuso e renomeouse a java.native_headers para que coincida co estilo de nomeamento das funcións xerais de Meson.

Fonte: opennet.ru

Engadir un comentario