Sortie des outils de build Qbs 1.21 et début des tests Qt 6.3

La version des outils de build Qbs 1.21 a été annoncée. Il s'agit de la huitième version depuis que la société Qt a quitté le développement du projet, préparé par la communauté intéressée à poursuivre le développement de Qbs. Pour construire Qbs, Qt est requis parmi les dépendances, 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 des scripts de build de projet, ce qui vous permet de définir des règles de build assez flexibles pouvant connecter des modules externes, utiliser des fonctions JavaScript et créer des règles de build personnalisé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.

Principales innovations de Qbs 1.21 :

  • Le mécanisme des fournisseurs de modules (générateurs de modules) a été repensé. Pour les frameworks tels que Qt et Boost, il est désormais possible d'utiliser plusieurs fournisseurs, de spécifier quel fournisseur exécuter à l'aide de la nouvelle propriété qbsModuleProviders et de spécifier une priorité pour la sélection des modules générés par différents fournisseurs. Par exemple, vous pouvez spécifier deux fournisseurs "Qt" et "qbspkgconfig", dont le premier tentera d'utiliser l'installation Qt de l'utilisateur (via une recherche qmake), et si aucune installation de ce type n'est trouvée, le deuxième fournisseur tentera d'utiliser le Qt fourni par le système (via un appel à pkg-config) : CppApplication { Depends { name: "Qt.core" } files: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
  • Ajout du fournisseur "qbspkgconfig", qui a remplacé le fournisseur de module "fallback", qui tentait de générer un module à l'aide de pkg-config si le module demandé n'était pas généré par d'autres fournisseurs. Contrairement à « fallback », « qbspkgconfig », au lieu d'appeler l'utilitaire pkg-config, utilise une bibliothèque C++ intégrée pour lire directement les fichiers « .pc », ce qui accélère le travail et fournit des informations supplémentaires sur les dépendances des packages qui ne sont pas disponibles lors de l'appel de l'utilitaire pkg-config. utilitaire pkg-config.
  • Ajout de la prise en charge de la spécification C++23, qui définit le futur standard C++.
  • Ajout de la prise en charge de l'architecture Elbrus E2K pour la boîte à outils GCC.
  • Pour la plate-forme Android, la propriété Android.ndk.buildId a été ajoutée pour remplacer la valeur par défaut de l'indicateur de l'éditeur de liens "--build-id".
  • Les modules capnproto et protobuf implémentent la possibilité d'utiliser les runtimes fournis par le fournisseur qbspkgconfig.
  • Problèmes résolus avec le suivi des modifications dans les fichiers sources sur FreeBSD en raison de la perte de millisecondes lors de l'estimation des temps de modification des fichiers.
  • Ajout de la propriété ConanfileProbe.verbose pour faciliter le débogage des projets qui utilisent le gestionnaire de packages Conan.

De plus, on peut noter le début des tests alpha du framework Qt 6.3, qui implémente un nouveau module « Qt Language Server » avec support des protocoles Language Server et JsonRpc 2.0, une grande partie des nouvelles fonctions a été ajoutée au Qt Core module, et le type QML MessageDialog a été implémenté dans le module Qt Quick Dialogs. Pour utiliser les boîtes de dialogue fournies par la plateforme, un serveur Qt Shell composite et une API pour créer vos propres extensions shell personnalisées ont été ajoutés au module Qt Wayland Compositor .

Le module Qt QML propose une implémentation du compilateur qmltc (compilateur de type QML), qui permet de compiler des structures d'objets QML en classes en C++. Pour les utilisateurs commerciaux de Qt 6.3, les tests du produit Qt Quick Compiler ont commencé, qui, en plus du compilateur de types QML mentionné ci-dessus, inclut le compilateur de script QML, qui vous permet de compiler des fonctions et des expressions QML en code C++. Il est à noter que l'utilisation de Qt Quick Compiler rapprochera les performances des programmes basés sur QML des programmes natifs ; en particulier, lors de la compilation d'extensions, il y aura une réduction du temps de démarrage et d'exécution d'environ 30 % par rapport à l'utilisation de la version interprétée. .

Source: opennet.ru

Ajouter un commentaire