QBS 1.17 viene con mejoras para C / C ++, Android y más
El lanzamiento de la nueva versión de QBS 1.17Este es 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 le 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 análisis de scripts compilación utilizando 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 reconstrucción con Qbs puede superar 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, todavía se utiliza la infraestructura de Qt Company.
Principales novedades de Qbs 1.17
En esta nueva versión presentada se suman alrededor de 272 aportes desde la versión 1.16.0 y es que de los mayores cambios que se destacan, podemos encontrar que se agregó el soporte inicial para Qt 6.
Además de eso módulo capnp para utilizar el protocolo de serialización de datos Cap’n Proto en aplicaciones C ++ y que se han realizado muchas mejoras en el soporte de la cadena de herramientas para dispositivos bare metal en general.
También se destaca quee agregó la capacidad de especificar variables de productos y proyectos 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 en equipos sin sistema operativo, KEIL (ARMCLANG, C166, C251), IAR (CR16, AVR32, M68K) y GCC (CR16, M68K, M32C, M32R, Super-H, V850, RISC-V, Xtensa).
Además, también Se destaca la inclusión de soporte de compilación mejorado para la plataforma Android., ya que la propiedad packageType se agregó 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 el soporte para crear aplicaciones de Android para plataformas ARMv5, MIPS y MIPS64.
De los otros cambios que destacan de esta nueva versión:
- Se agregó soporte para el entorno de desarrollo Xcode 12.0 para macOS.
- Se han limpiado los módulos «Qt para Android».
- Qt se ha creado 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 - Se ha corregido el Visual Studio Builder para que funcione con Visual Studio.
- Se corrigió la extracción de información de compilación de variables en instalaciones de 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 saber mas al respecto Acerca de esta nueva versión lanzada, puede consultar los detalles de la publicación. original en el siguiente enlace.
Y para los interesados en construir Qbs, deben saber que Qt se requiere como dependencia, aunque Qbs está diseñado para organizar la construcción de cualquier proyecto.