De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

Qbs (que se pronuncia Cubes ) es un software multiplataforma gratuito y de código abierto para administrar el proceso de compilación del software . Fue diseñado para soportar proyectos grandes y complejos, escritos en cualquier número de lenguajes de programación, principalmente C / C ++ .

Qbs es una herramienta todo en uno que genera un gráfico de compilación a partir de una descripción de proyecto de alto nivel (como su predecesor qmake ) y, además, realiza la tarea de ejecutar los comandos en el gráfico de compilación de bajo nivel (como make ).

Qbs fue creado originalmente por Nokia , luego The Qt Company , que lo distribuye junto con su kit de herramientas Qt . Se integra con el marco Qt y automatiza la creación de fuentes moc (compilador de metaobjetos) y rcc (compilador de recursos), que se utilizan en el sistema de metaobjetos de Qt y en la integración de recursos binarios (por ejemplo, imágenes).

Funciones [ editar ]

Qbs es único en el sentido de que no tiene ningún mecanismo para compilaciones en origen, lo que garantiza la capacidad de crear varias compilaciones a partir de un único árbol de fuentes, incluida la compilación a partir de una única invocación de comando y en paralelo. Esta es una característica clave que garantiza que los archivos de origen no se vean afectados si se elimina un directorio de compilación y que no se escriben artefactos de salida en el directorio de origen.

Qbs no tiene soporte integrado para ningún lenguaje de programación, kit de herramientas o biblioteca en particular. Esto nuevamente contrasta con qmake , que codifica soporte para muchas herramientas y flujos de trabajo relacionados con Qt . En cambio, Qbs se proporciona con un conjunto de módulos escritos en un dialecto QML y JavaScript que permiten el soporte para una variedad de lenguajes y herramientas de programación. Qbs actualmente proporciona módulos compatibles con Android SDK y NDK , C , C ++ , Java , NSIS , TypeScript , WiX , Xcode y una variedad de otras herramientas.

Qbs puede crear proyectos para muchas plataformas, incluidas Android , FreeBSD , iOS , Linux , macOS , QNX , tvOS , watchOS y Windows , con soporte para aplicaciones de la Plataforma universal de Windows , INTEGRITY , VxWorks y otras plataformas en desarrollo.

Qt Creator proporciona compatibilidad integrada con Qbs, y la función de generadores proporciona la integración IDE para Visual Studio . El soporte para Xcode está actualmente en desarrollo.

Proceso de construcción [ editar ]

El proceso de construcción en Qbs se lleva a cabo en dos etapas. Primero, el gráfico de construcción se resuelve leyendo los archivos de configuración del proyecto y calculando el conjunto de nodos de entrada y salida y las dependencias entre ellos en un gráfico acíclico dirigido . Luego, el ejecutor ejecuta todos los comandos necesarios para crear los archivos de salida, en paralelo de acuerdo con las reglas de dependencia.

Cada proyecto de compilación contiene un único archivo de gráfico de compilación (* .bg) en el directorio donde Qbs almacena la representación serializada de su formato de gráfico de compilación interno. La deserialización de este archivo y la utilización de la información almacenada en caché permite que Qbs resuelva muy rápidamente el proyecto, lo que lleva a compilaciones incrementales casi instantáneas. La eliminación del archivo de gráfico de compilación provoca una reconstrucción completa (limpia) de todo el proyecto. A diferencia de make , Qbs no depende de las marcas de tiempo de los archivos en el directorio de compilación, y la manipulación de su contenido no conducirá a la reconstrucción de los objetivos a menos que se use la --check-outputsopción. Esto se hace por razones de rendimiento porque en algunas plataformas (por ejemplo, Windows), leer las marcas de tiempo del sistema de archivos es muy lento en comparación con leerlas desde el archivo gráfico de compilación.

Ejemplo de archivo Qbs [ editar ]

CppApplication  {  nombre:  archivos "helloworld"  :  "main.cpp" }

Historia [ editar ]

El desarrollo de Qbs comenzó en Nokia en el año 2010 en respuesta a la necesidad de un reemplazo para qmake . El diseño de Qbs tiene como objetivo proporcionar una curva de aprendizaje mucho más baja, una mejor integración con los IDE y un lenguaje estable y potente con un comportamiento predecible. Qbs 1.0 fue lanzado en 2013 [4] y desarrollado por Qt Company a partir de ese momento bajo el modelo de gobierno del Proyecto Qt . Los desarrolladores esperaban eventualmente presionar para que Qbs reemplazara a qmake como el propio sistema de compilación de Qt. Sin embargo, en octubre de 2018 quedó en desuso [5] a favor de qmake y / o cmake. En una publicación de blog del 7 de agosto de 2019, Qt Company declaró que a partir de Qt 6, cmake se convertirá en el sistema de compilación estándar de Qt [6].y citó como factor la extrema popularidad de cmake. [7]

El desarrollo de Qbs fue asumido por voluntarios externos, que a partir de junio de 2020 todavía lo mantienen activamente bajo el paraguas del Proyecto Qt . [8] Aunque Qt Company anunció que detendría un mayor desarrollo en Qbs, se comprometió a proporcionar la infraestructura necesaria para futuras versiones de Qbs por parte de la comunidad. [5]

Aplicaciones notables que usan Qbs [ editar ]

  • Creador de Qt
  • Conan (administrador de paquetes de C ++)
  • Mappero
  • Pizarra
  • Azulejos

Referencias [ editar ]

  1. ^ "Presentación de Qbs" . The Qt Company . Consultado el 2 de junio de 2016 .
  2. ^ "lanzamiento oficial 1.17.0" . 2020-09-14.
  3. ^ "Licencias de Qt - Red de desarrolladores de Qt" . qt-project.org.
  4. ^ "qbs 1.0.0 lanzado" . The Qt Company . Consultado el 2 de junio de 2016 .
  5. ^ a b "Desaprobación de Qbs" .
  6. ^ "Visión técnica de Qt 6" .
  7. ^ "Visión técnica de Qt 6" .
  8. ^ "qbs en github" .

Enlaces externos [ editar ]

  • Manual de Qbs
  • Preguntas más recientes sobre 'qbs'
  • QtWS15: desarrollo multiplataforma eficaz con Qt, Creator, QBS y QEMU Andrew Knight, Intopalo
  • Lanzamiento de una herramienta de montaje qbs 1.4.0, Qt para desarrollar el proyecto