Lanzamiento de los sistemas de compilación CMake 3.21 y Meson 0.59

Se presenta el lanzamiento del generador de scripts de compilación abierto multiplataforma CMake 3.21, que actúa como una alternativa a Autotools y se utiliza en proyectos como KDE, LLVM/Clang, MySQL, MariaDB, ReactOS y Blender. El código CMake está escrito en C++ y distribuido bajo la licencia BSD.

CMake se destaca por proporcionar un lenguaje de secuencias de comandos simple, un medio para extender la funcionalidad a través de módulos, un número mínimo de dependencias (sin vinculación a M4, Perl o Python), soporte de almacenamiento en caché, la presencia de herramientas para compilación cruzada, soporte para generar compilaciones. archivos para una amplia gama de sistemas de compilación y compiladores, la presencia de utilidades ctest y cpack para definir scripts de prueba y crear paquetes, utilidad cmake-gui para configurar interactivamente los parámetros de compilación.

Principales mejoras:

  • Se agregó soporte completo para el lenguaje de programación Heterogeneous-Computing Interface for Portability (HIP), un dialecto del lenguaje C++ destinado a facilitar la conversión de aplicaciones CUDA a código C++ portátil.
  • Se agregó un generador de scripts de compilación para Visual Studio 17 2022, basado en Visual Studio 2022 Preview 1.1.
  • Los generadores de scripts de compilación Makefile y Ninja han agregado las propiedades C_LINKER_LAUNCHER y CXX_LINKER_LAUNCHER, que se pueden usar para iniciar utilidades auxiliares que inician el vinculador, como analizadores estáticos. El generador ejecutará las utilidades especificadas y les pasará el nombre del vinculador y sus argumentos.
  • En las propiedades "C_STANDARD" y "OBJC_STANDARD", así como en las herramientas para configurar los parámetros del compilador (Compile Features), se ha agregado soporte para las especificaciones C17 y C23.
  • La opción “—toolchain” se ha agregado a la utilidad cmake > para determinar la ruta al kit de herramientas.
  • Se resaltan los tipos de mensajes que se muestran en el terminal.
  • Se agregó soporte para el compilador Fujitsu.
  • El comando "foreach()" garantiza que las variables del bucle estén aisladas dentro de un bucle.

Además, podemos destacar el lanzamiento del sistema de compilación Meson 0.59, que se utiliza para construir 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. Admite compilación cruzada y compilación en Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS y Windows utilizando GCC, Clang, Visual Studio y otros compiladores. Es posible crear proyectos en varios lenguajes de programación, incluidos C, C++, Fortran, Java y Rust. En lugar de la utilidad make, el kit de herramientas Ninja se usa de forma predeterminada al compilar, pero también se pueden usar otros backends como xcode y VisualStudio.

El sistema tiene un controlador de dependencias multiplataforma incorporado que le permite usar Meson para crear paquetes para distribuciones. Las reglas de ensamblaje se especifican en un lenguaje simplificado específico del dominio, son muy legibles y comprensibles para el usuario (según lo previsto por los autores, el desarrollador debe dedicar un mínimo de tiempo a escribir las reglas). Se admite el modo de compilación incremental, en el que solo se reconstruyen los componentes directamente relacionados con los cambios realizados desde la última compilación. Meson se puede utilizar para generar compilaciones repetibles, en las que ejecutar la compilación en diferentes entornos da como resultado la generación de archivos ejecutables completamente idénticos.

Principales novedades de Meson 0.59:

  • Se agregó soporte para el lenguaje Cython (una versión avanzada de Python destinada a simplificar la integración con el código C).
  • Se agregaron palabras clave "unescaped_variables" y "unescaped_uninstalled_variables" para definir variables en pkgconfig sin espacios de escape con el carácter "\".
  • Se agregó soporte para wrc (Wine Resource Compiler).
  • Se ha implementado la capacidad de generar proyectos para Visual Studio 2012 y Visual Studio 2013.
  • Todos los comandos relacionados con subproyectos ahora ejecutan cada subproyecto en paralelo de forma predeterminada. El número de procesos paralelos está determinado por el parámetro “--num-processes”.

Fuente: opennet.ru

Añadir un comentario