Version de l'outil d'assemblage Qbs 2.0

Lancement de la version de l'outil de construction Qbs 2.0. Pour construire Qbs, Qt est requis en tant que dépendance, bien que Qbs lui-même soit conçu pour organiser l'assemblage de tous les projets. Qbs utilise une version simplifiée du langage QML pour définir les scripts de construction de projet, ce qui vous permet de définir des règles de construction assez flexibles dans lesquelles des modules externes peuvent être connectés, des fonctions JavaScript peuvent être utilisées et des règles de construction arbitraires peuvent être créées.

Le langage de script utilisé dans Qbs est adapté pour automatiser la génération et l'analyse des scripts de construction par les IDE. De plus, Qbs ne génère pas de makefiles, et lui-même, sans intermédiaires tels que l'utilitaire make, contrôle le lancement des compilateurs et des éditeurs de liens, optimisant le processus de construction sur la base d'un graphe détaillé de toutes les dépendances. La présence de données initiales sur la structure et les dépendances dans le projet permet de paralléliser efficacement l'exécution des opérations dans plusieurs threads. Pour les grands projets constitués d'un grand nombre de fichiers et de sous-répertoires, les performances des reconstructions utilisant Qbs peuvent surpasser make de plusieurs fois - la reconstruction est presque instantanée et ne fait pas attendre le développeur.

Rappelons qu'en 2018, la société Qt a décidé d'arrêter de développer Qbs. Qbs a été développé pour remplacer qmake, mais il a finalement été décidé d'utiliser CMake comme système de construction principal pour Qt à long terme. Le développement de Qbs s'est poursuivi en tant que projet indépendant soutenu par les forces de la communauté et les développeurs intéressés. L'infrastructure de Qt Company continue d'être utilisée pour le développement.

Un changement significatif du numéro de version est associé à la mise en œuvre d'un nouveau backend JavaScript, qui a remplacé QtScript, qui était obsolète dans Qt 6. Il a été jugé irréaliste de continuer à maintenir QtScript seul en raison de liaisons complexes à JavaScriptCore, donc -suffisant et compact a été choisi comme base du nouveau moteur backend QuickJS JavaScript créé par Fabrice Bellard, fondateur des projets QEMU et FFmpeg. Le moteur prend en charge la spécification ES2019 et surpasse considérablement ses homologues existants en termes de performances (XS de 35 %, DukTape de plus de deux fois, JerryScript de trois fois et MuJS de sept fois).

Du point de vue du développement des scripts de build, la transition vers un nouveau moteur ne devrait pas entraîner de changements notables. Les performances resteront également à peu près les mêmes. Parmi les différences, il existe des exigences plus strictes dans le nouveau moteur pour l'utilisation de valeurs nulles, ce qui peut révéler des problèmes dans les projets existants qui sont passés inaperçus lors de l'utilisation de QtScript.

Source: opennet.ru

Ajouter un commentaire