La version finale des outils de build Qbs a été publiée

Société Qt опубликовала outils d'assemblage Qb 1.13 (Suite de build Qt). Il s'agit de la dernière version de Qbs produite par la société Qt. Rappelons-nous ce qui s'est passé plus tôt accepté décision d’arrêter de développer Qbs. Qbs a été développé en remplacement de qmake, mais il a finalement été décidé d'utiliser CMake comme système de build principal pour Qt à long terme.

Dans un avenir proche, il est prévu qu'un projet indépendant soit créé pour poursuivre le développement de Qbs par la communauté, dont le sort dépendra de l'intérêt des développeurs indépendants pour le système d'assemblage en question. Qt Company cesse de travailler sur Qbs en raison de la nécessité d'investissements supplémentaires et des coûts élevés de promotion de Qbs.

Rappelons que pour construire Qbs, Qt est nécessaire en tant que dépendance, bien que Qbs lui-même soit conçu pour organiser l'assemblage de n'importe quel projet. 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.
Qbs ne génère pas de makefiles et contrôle indépendamment le lancement des compilateurs et des éditeurs de liens, optimisant ainsi le processus de construction sur la base d'un graphique détaillé de toutes les dépendances. La présence de données initiales sur la structure et les dépendances dans le projet vous permet de paralléliser efficacement l'exécution des opérations dans plusieurs threads.

Principales innovations de Qbs 1.13 :

  • Ajout de la possibilité d'utiliser les modules pkg-config dans des projets en utilisant le même mécanisme de traitement des dépendances que celui utilisé pour les modules Qbs. Par exemple, si votre système dispose d'un package pour créer OpenSSL basé sur pkg-config, pour l'utiliser dans un projet Qbs, ajoutez simplement 'Depends { name: "openssl" }';
  • Implémentation de la détection automatique des modules Qt disponibles. Les développeurs n'ont plus besoin de créer un profil avec les chemins de module à l'aide de la commande setup-qt ; tous les modules Qt spécifiés dans les dépendances seront configurés automatiquement ;
  • Ajout d'outils pour contrôler le nombre de tâches d'assemblage exécutées en parallèle au niveau des commandes individuelles. Par exemple, la liaison crée une charge d'E/S importante et consomme une quantité importante de RAM, de sorte que l'éditeur de liens nécessite des paramètres de démarrage différents de ceux du compilateur. Des paramètres distincts peuvent désormais être définis à l'aide de la commande « qbs —job-limits linker:2,compiler:8 » ;
  • Des modifications ont été apportées au langage de script. Les règles peuvent désormais être définies sans spécifier de fichier stub pour la sortie, et il n'est pas nécessaire d'utiliser la directive « import qbs » au début des fichiers de projet. De nouvelles propriétés install et installDir ont été ajoutées aux éléments Application, DynamicLibrary et StaticLibrary pour une installation plus pratique des fichiers exécutables ;
  • Ajout de la prise en charge de l'analyse récursive des scripts de l'éditeur de liens
    éditeur de liens GNU ;

  • Pour C++, la propriété cpp.linkerVariant a été implémentée pour forcer l'utilisation des éditeurs de liens ld.gold, ld.bfd ou lld ;
  • Qt introduit la propriété Qt.core.enableBigResources pour créer de grandes ressources Qt
  • Au lieu de l’élément AndroidApk obsolète, il est proposé d’utiliser le type Application générique ;
  • Ajout d'un module de création de tests basés sur l'autotest ;
  • Ajout du module texttemplate avec des fonctionnalités similaires à QMAKE_SUBSTITUTES dans qmake ;
  • Ajout de la prise en charge initiale du format Protocol Buffers pour C++ et Objective-C.

Source: opennet.ru

Ajouter un commentaire