Version de l'outil d'assemblage Qbs 1.20

La version des outils de build Qbs 1.20 a été annoncée. Il s'agit de la septiè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.20 :

  • La prise en charge complète du framework Qt 6 a été implémentée, y compris la branche Qt 6.2.
  • Le module QtScript, qui n'est plus fourni dans Qt 17 et est désormais inclus dans Qbs, a été mis à jour et porté en C++6.
  • Dans le cas d'un assemblage avec un ensemble de propriétés différent, une liste des anciennes propriétés est fournie.
  • Une commande a été ajoutée à qbs-config pour ajouter l'intégralité du profil, ce qui permet de se passer de l'ajout de propriétés séparément et accélère considérablement le démarrage lorsque vous disposez de plusieurs SDK Android.
  • Le problème de gestion incorrecte des heures de mise à jour des fichiers sur la plateforme FreeBSD a été résolu.
  • Prise en charge améliorée de C/C++. Ajout de la prise en charge des compilateurs COSMIC (COLDFIRE/M68K, HCS08, HCS12, STM8 et STM32) et des outils Digital Mars. Pour le compilateur MSVC, la propriété cpp.enableCxxLanguageMacro a été implémentée et la prise en charge de la valeur « c++20 » a été ajoutée à cpp.cxxLanguageVersion.
  • Pour la plate-forme Android, la prise en charge de l'utilisation du compilateur d8 dex au lieu de dx a été implémentée en définissant la propriété Android.sdk.dexCompilerName. Ministro, un programme permettant d'exécuter des bibliothèques Qt sur Android, a été abandonné. La boîte à outils de création de packages a été mise à jour d'aapt vers aapt2 (Android Asset Packaging Tool).

Source: opennet.ru