QBS 1.17 llega con mejoras para C/C++, Android y mas
Se acaba de presentar el lanzamiento de la nueva version de QBS 1.17, siendo este el cuarto lanzamiento desde que Qt Company dejó el proyecto y fue producido por la comunidad interesada en continuar desarrollando Qbs.
Qbs utiliza una versión simplificada del lenguaje QML para definir scripts de compilación para un proyecto, lo que permite definir reglas de compilación bastante flexibles en las que se pueden conectar módulos externos, se pueden usar funciones de JavaScript y se pueden crear reglas de compilación arbitrarias.
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 makefiles, pero sí, sin intermediarios como la utilidad make, controla el lanzamiento de compiladores y enlazadores, optimizando el proceso de construcción en base a 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 hilos. 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.
Recordemos que, en 2018, Qt Company decidió detener 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.
Principales novedades de Qbs 1.17
En esta nueva version presentada, se añaden cerca de 272 contribuciones desde la versión 1.16.0 y es que de los mas grandes cambios que se destacan, podremos encontrar que se agregó el soporte inicial para Qt 6.
Además de que también se agregó el módulo capnp para usar el protocolo de serialización de datos Cap’n Proto en aplicaciones C++ y que además se han realizado muchas mejoras en el soporte de la cadena de herramientas para dispositivos bare-metal en general.
También se destaca que se agregó la capacidad de especificar las variables de producto y proyecto en el lado derecho de las definiciones de propiedad de moduleProvider (por ejemplo, “moduleProviders.mygenerator.chooseLettersFrom: project.beginning”).
Se agregó soporte para kits de herramientas para construir proyectos C/C ++ para trabajar sobre equipos sin un sistema operativo, KEIL (ARMCLANG, C166, C251), IAR (CR16, AVR32, M68K) y GCC (CR16, M68K, M32C, M32R, Super-H, V850, RISC-V, Xtensa).
Por otra parte, también se destaca la inclusión del soporte de compilación mejorado para la plataforma Android, pues se agregó la propiedad packageType al módulo Android.sdk para crear paquetes “aab” (Android App Bundles) en lugar de “apk”, así como la propiedad aaptName para usar el nuevo aapt2 (Android Asset Packaging Tool) y se eliminó el soporte para la creación de aplicaciones de Android para plataformas ARMv5, MIPS y MIPS64.
De los demás cambios que se destacan de esta nueva version:
- Se agregó soporte para el entorno de desarrollo Xcode 12.0 para macOS.
- Se limpiaron los módulos “Qt para Android”.
- Se ha creado Qt para aplicaciones de Android como bibliotecas estáticas.
- Las barras diagonales finales ya no se eliminan del entorno de Visual Studio
- El módulo cpp de MSVC no utilizó cpp.distributionIncludePaths
propiedad - El generador de Visual Studio se ha corregido para que funcione con Visual Studio.
- Se corrigió la extracción de información de compilación de variables en instalaciones Qt “CONFIG y QT_CONFIG”
- El número de versión ya no se agrega a los archivos .so en Android
* Las definiciones del compilador ahora se pasan correctamente a moc al procesar
archivos de encabezado
Finalmente si quieres conocer mas al respecto sobre esta nueva version liberada, puedes consultar los detalles de la publicación original en el siguiente enlace.
Y para los interesados en construir Qbs, deben saber que se requiere Qt como dependencia, aunque Qbs está diseñado para organizar la construcción de cualquier proyecto.