Qt Company herramienta de construcción (Qt Build Suite). Esta es la última versión de Qbs, desarrollada por Qt Company. Recordemos que anteriormente hubo una decisión de cesar el desarrollo de Qbs. Qbs se desarrolló como un reemplazo de qmake, pero al final se decidió utilizar CMake como el sistema de construcción principal para Qt a largo plazo.
En un futuro cercano, se espera la creación de un proyecto independiente para continuar el desarrollo de Qbs por parte de la comunidad, cuya suerte dependerá del interés en el sistema de construcción considerado por parte de desarrolladores independientes. Qt Company está cesando el trabajo en Qbs debido a la necesidad de inversiones adicionales y altos costos de promoción de Qbs.
Recordemos que para compilar Qbs se requiere Qt como dependencia, aunque Qbs está diseñado para organizar la construcción de cualquier proyecto. Qbs utiliza una versión simplificada del lenguaje QML para definir los scripts de construcción del proyecto, lo que permite establecer reglas de construcción bastante flexibles, donde se pueden conectar módulos externos, utilizar funciones en JavaScript y crear reglas de construcción arbitrarias.
Qbs no genera archivos make y controla por sí mismo la ejecución de compiladores y enlazadores, optimizando el proceso de construcción en función de un gráfico detallado de todas las dependencias. La existencia de datos iniciales sobre la estructura y las dependencias en el proyecto permite paralelizar eficientemente la ejecución de operaciones en varios hilos.
Novedades principales de Qbs 1.13:
- Se ha añadido la posibilidad de utilizar módulos pkg-config en proyectos, utilizando el mismo mecanismo de manejo de dependencias que se aplica a los módulos de Qbs. Por ejemplo, si hay un paquete en el sistema para compilar OpenSSL basado en pkg-config, para usarlo en el proyecto Qbs, basta con añadir ‘Depends { name: «openssl» }’;
- Se ha implementado la detección automática de módulos Qt disponibles. Los desarrolladores ya no necesitan crear un perfil con rutas a los módulos utilizando el comando setup-qt; todos los módulos de Qt especificados en las dependencias se configurarán automáticamente.
- Se han añadido herramientas para controlar el número de tareas de construcción que se ejecutan en paralelo a nivel de equipos individuales. Por ejemplo, durante la vinculación se genera una gran carga en las entradas/salidas y se consume una cantidad significativa de RAM, por lo que el enlazador requiere una configuración de inicio diferente a la del compilador. Ahora se pueden establecer configuraciones separadas utilizando el comando «qbs —job-limits linker:2,compiler:8»;
- Se han realizado cambios en el lenguaje de scripts. Las reglas ahora se pueden definir sin especificar un archivo de marcador para la salida, y no es obligatorio utilizar la directiva «import qbs» al comienzo de los archivos de proyectos. En los elementos Application, DynamicLibrary y StaticLibrary se han añadido nuevas propiedades install e installDir para facilitar la instalación de archivos ejecutables;
- Se ha añadido soporte para el escaneo recursivo de scripts del enlazador.
GNU linker; - Para el lenguaje C++, se ha implementado la propiedad cpp.linkerVariant para forzar el uso de los enlazadores ld.gold, ld.bfd o lld;
- Para Qt se ha introducido la propiedad Qt.core.enableBigResources para crear recursos grandes de Qt.
- En lugar del elemento obsoleto AndroidApk, se recomienda utilizar el tipo general Application;
- Se ha añadido un módulo para crear pruebas basadas en autotest;
- Se ha añadido un módulo texttemplate con funcionalidades similares a QMAKE_SUBSTITUTES en qmake;
- Se ha añadido soporte inicial para el formato Protocol Buffers para C++ y Objective-C.
Fuente: opennet.ru
