Se ha publicado la versión final de las herramientas de compilación de Qbs.

Qt empresa опубликовала herramientas de montaje Qb 1.13 (Suite de compilación Qt). Esta es la última versión de Qbs producida por Qt Company. Recordemos lo que pasó antes. tomado decisión de 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.

En un futuro próximo, se espera que se cree un proyecto independiente para continuar el desarrollo de Qbs por parte de la comunidad, cuyo destino dependerá del interés en el sistema de ensamblaje en cuestión por parte de los desarrolladores independientes. Qt Company deja de trabajar en Qbs debido a la necesidad de inversiones adicionales y los altos costos de promoción de Qbs.

Recordemos que para construir Qbs se requiere Qt como dependencia, aunque el propio Qbs está diseñado para organizar el montaje 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.
Qbs no genera archivos MAKE y controla de forma independiente el lanzamiento de compiladores y enlazadores, optimizando el proceso de compilació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.

Innovaciones clave en Qbs 1.13:

  • Se agregó la capacidad de usar módulos pkg-config en proyectos que usan el mismo mecanismo de procesamiento de dependencia que se usa para los módulos Qbs. Por ejemplo, si su sistema tiene un paquete para construir OpenSSL basado en pkg-config, para usarlo en un proyecto Qbs, simplemente agregue 'Depends { name: "openssl" }';
  • Se implementó la detección automática de módulos Qt disponibles. Los desarrolladores ya no necesitan crear un perfil con rutas de módulos usando el comando setup-qt; todos los módulos Qt especificados en las dependencias se configurarán automáticamente;
  • Se agregaron herramientas para controlar la cantidad de tareas de ensamblaje que se ejecutan en paralelo a nivel de comandos individuales. Por ejemplo, la vinculación crea una gran carga de E/S y consume una cantidad significativa de RAM, por lo que el vinculador requiere configuraciones de inicio diferentes a las del compilador. Ahora se pueden establecer configuraciones separadas usando el comando “qbs —job-limits linker:2,compiler:8”;
  • Se han realizado cambios en el lenguaje de secuencias de comandos. Ahora se pueden definir reglas sin especificar un archivo resguardo para la salida y no es necesario utilizar la directiva "import qbs" al comienzo de los archivos del proyecto. Se han agregado nuevas propiedades install e installDir a los elementos Aplicación, DynamicLibrary y StaticLibrary para una instalación más conveniente de archivos ejecutables;
  • Se agregó soporte para escaneo recursivo de scripts de enlazador.
    enlazador GNU;

  • Para C++, se implementó la propiedad cpp.linkerVariant para forzar el uso de los enlazadores ld.gold, ld.bfd o lld;
  • Qt presenta la propiedad Qt.core.enableBigResources para crear grandes recursos Qt
  • En lugar del elemento obsoleto AndroidApk, se propone utilizar el tipo de Aplicación genérico;
  • Se agregó un módulo para crear pruebas basadas en autotest;
  • Se agregó un módulo de plantilla de texto con capacidades similares a QMAKE_SUBSTITUTES en qmake;
  • Se agregó soporte inicial para el formato Protocol Buffers para C++ y Objective-C.

Fuente: opennet.ru

Añadir un comentario