Qbs 1.20 llega con mejoras de soporte para C,C++, soporte para QT 6 y mas
Se acaba de presentar el lanzamiento de la nueva versión de «Qbs 1.20», siendo este es el séptimo lanzamiento desde que Qt Company dejó el desarrollo del proyecto y que es producido por la comunidad con interés en continuar con el desarrollo de Qbs.
Hay que recordar que en 2018, Qt Company decidió interrumpir el desarrollo de Qbs. Qbs evolucionó como un reemplazo de qmake, pero finalmente se decidió usar CMake como el sistema de compilación principal para Qt a largo plazo. El desarrollo de Qbs ahora continúa como un proyecto independiente apoyado por la comunidad y los desarrolladores interesados. Para el desarrollo, se sigue utilizando la infraestructura de Qt Company.
Para construir Qbs, se requiere Qt como dependencia, aunque Qbs en sí está diseñado para organizar la construcción de cualquier proyecto. Qbs usa una versión simplificada del lenguaje QML para definir scripts de construcción para el proyecto, lo que permite definir reglas de construcción bastante flexibles en las que se pueden conectar módulos externos, se pueden usar funciones de JavaScript y se pueden crear reglas de construcción arbitrarias.
El lenguaje de secuencias de comandos utilizado en Qbs se ha adaptado para automatizar la generación y el análisis de secuencias de comandos de compilación por parte de los IDE. Además, Qbs no genera makefiles, pero sí mismo, sin intermediarios como la utilidad make, controla el lanzamiento de compiladores y enlazadores, optimizando el proceso de construcción con base en un gráfico detallado de todas las dependencias.
La presencia de los 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 con una gran cantidad de archivos y subdirectorios, el rendimiento de la reconstrucción con Qbs puede superar el rendimiento varias veces; la reconstrucción es casi instantánea y no obliga al desarrollador a perder tiempo esperando.
Principales novedades de Qbs 1.20
En esta nueva versión de Qbs 1.20 se han realizado cerca de 127 contribuciones que se incluyeron en esta versión desde la versión 1.19.0.
De los cambios más importantes se destaca que se ha implementado soporte completo Qt 6 y que tiene soporte hasta la rama Qt 6.2, además de que se actualizó y portó a C++ 17 el módulo QtScript, que ya no se envía en Qt 6 y ahora es parte de Qbs.
Para la plataforma Android, se ha implementado compatibilidad para usar el compilador dex d8 en lugar de dx estableciendo la propiedad Android.sdk.dexCompilerName, mientras que por otro lado se ha descontinuado el soporte para Ministro, un programa para asegurar el trabajo de las bibliotecas Qt en el sistema Android y la herramienta de empaquetado se ha actualizado de aapt a aapt2 (herramienta de empaquetado de activos de Android) que se introdujo en Build Tools en 26.0.2 y reemplazó aapt en gradle desde la versión 3.0.0.
También se destaca en esta nueva versión que la compatibilidad con C y C++ se ha mejorado, además de que se agregó soporte para compiladores COSMIC (COLDFIRE / M68K, HCS08, HCS12, STM8 y STM32) y el kit de herramientas Digital Mars. Para el compilador MSVC, implementó la propiedad cpp.enableCxxLanguageMacro y agregó soporte para el valor «c ++ 20» en cpp.cxxLanguageVersion.
De los demás cambios que se destacan de esta nueva versión:
- En el caso de un ensamblaje con un conjunto de propiedades diferente, se muestra la lista de propiedades antiguas.
- Se ha agregado un comando a qbs-config para agregar el perfil completo, lo que elimina la necesidad de agregar propiedades por separado y acelera significativamente el lanzamiento en presencia de múltiples SDK de Android.
- Se solucionó el problema con el manejo incorrecto de los tiempos de actualización de archivos en la plataforma FreeBSD.
- En macOS Homebrew se ha trasladado de qmake a CMake.
- Se corrigió el manejo de cpp.linkerWrapper con la cadena de herramientas MSVC
- Se arregló el soporte para herramientas QML que se movieron al directorio
/libexec
en Qt 6.2
Finalmente si estás interesado en conocer más al respecto sobre esta nueva versión, puedes consultar los detalles en el siguiente enlace.