Lanzamiento de las herramientas de compilación de Qbs 1.21 e inicio de las pruebas de Qt 6.3

Se ha anunciado el lanzamiento de las herramientas de compilación Qbs 1.21. Este es el octavo lanzamiento desde que la Compañía Qt abandonó el desarrollo del proyecto, preparado por la comunidad interesada en continuar con el desarrollo de Qbs. Para construir Qbs, se requiere Qt entre las dependencias, aunque Qbs en sí está diseñado para organizar el ensamblaje de cualquier proyecto. Qbs utiliza una versión simplificada del lenguaje QML para definir scripts de compilación de proyectos, lo que le permite definir reglas de compilación bastante flexibles que pueden conectar módulos externos, usar funciones de JavaScript y crear reglas de compilación personalizadas.

El lenguaje de secuencias de comandos utilizado en Qbs está adaptado para automatizar la generación y el análisis de secuencias de comandos de compilación mediante entornos de desarrollo integrados. Además, Qbs no genera archivos MAKE, pero él mismo, sin intermediarios como la utilidad make, controla el lanzamiento de compiladores y enlazadores, optimizando el proceso de construcción en función de un gráfico detallado de todas las dependencias. La presencia de datos iniciales sobre la estructura y las dependencias en el proyecto le permite paralelizar efectivamente la ejecución de operaciones en varios subprocesos. Para proyectos grandes que constan de una gran cantidad de archivos y subdirectorios, el rendimiento de la reconstrucción con Qbs puede ser varias veces más rápido que el de make: la reconstrucción se realiza casi instantáneamente y no obliga al desarrollador a perder tiempo esperando.

Recordemos que en 2018 la Compañía Qt decidió dejar de desarrollar Qbs. Qbs se desarrolló como reemplazo de qmake, pero finalmente se decidió utilizar CMake como sistema de compilación principal para Qt a largo plazo. El desarrollo de Qbs ha continuado ahora como un proyecto independiente apoyado por la comunidad y los desarrolladores interesados. La infraestructura de Qt Company continúa utilizándose para el desarrollo.

Innovaciones clave en Qbs 1.21:

  • Se ha rediseñado el mecanismo de los proveedores de módulos (generadores de módulos). Para marcos como Qt y Boost, ahora es posible usar más de un proveedor, especificar qué proveedor ejecutar usando la nueva propiedad qbsModuleProviders y especificar una prioridad para seleccionar módulos generados por diferentes proveedores. Por ejemplo, puede especificar dos proveedores "Qt" y "qbspkgconfig", el primero de los cuales intentará utilizar la instalación de Qt del usuario (mediante una búsqueda qmake), y si no se encuentra dicha instalación, el segundo proveedor intentará use el Qt proporcionado por el sistema (mediante una llamada a pkg-config): CppApplication { Depende { nombre: "Qt.core" } archivos: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
  • Se agregó el proveedor "qbspkgconfig", que reemplazó al proveedor de módulo "alternativo", que intentaba generar un módulo usando pkg-config si el módulo solicitado no fue generado por otros proveedores. A diferencia de "fallback", "qbspkgconfig" en lugar de llamar a la utilidad pkg-config utiliza una biblioteca C++ incorporada para leer directamente archivos ".pc", lo que acelera el trabajo y proporciona información adicional sobre las dependencias de paquetes que no está disponible al llamar al utilidad pkg-config.
  • Se agregó soporte para la especificación C++ 23, que define el futuro estándar de C++.
  • Se agregó soporte para la arquitectura Elbrus E2K para el kit de herramientas GCC.
  • Para la plataforma Android, se agregó la propiedad Android.ndk.buildId para anular el valor predeterminado para el indicador del vinculador "--build-id".
  • Los módulos capnproto y protobuf implementan la capacidad de utilizar tiempos de ejecución proporcionados por el proveedor qbspkgconfig.
  • Se resolvieron problemas con el seguimiento de cambios en archivos fuente en FreeBSD debido a que se eliminaban milisegundos al estimar los tiempos de modificación de archivos.
  • Se agregó la propiedad ConanfileProbe.verbose para facilitar la depuración de proyectos que utilizan el administrador de paquetes de Conan.

Además, podemos notar el inicio de las pruebas alfa del framework Qt 6.3, que implementa un nuevo módulo “Qt Language Server” con soporte para los protocolos Language Server y JsonRpc 2.0, se ha agregado una gran parte de nuevas funciones al Qt Core. módulo, y el tipo QML MessageDialog se ha implementado en el módulo Qt Quick Dialogs. Para usar los cuadros de diálogo proporcionados por la plataforma, se han agregado un servidor Qt Shell compuesto y una API para crear sus propias extensiones de shell de usuario al módulo Qt Wayland Compositor. .

El módulo Qt QML ofrece una implementación del compilador qmltc (compilador de tipos QML), que le permite compilar estructuras de objetos QML en clases en C++. Para los usuarios comerciales de Qt 6.3, han comenzado las pruebas del producto Qt Quick Compiler, que, además del QML Type Compiler mencionado anteriormente, incluye el QML Script Compiler, que permite compilar funciones y expresiones QML en código C++. Cabe señalar que el uso de Qt Quick Compiler acercará el rendimiento de los programas basados ​​en QML a los programas nativos; en particular, al compilar extensiones, hay una reducción en el tiempo de inicio y ejecución en aproximadamente un 30% en comparación con el uso de la versión interpretada. .

Fuente: opennet.ru

Añadir un comentario