Qt a eu une histoire trouble avec les systèmes de compilation, surtout pour des raisons historiques. Cela a fait que le système principal, pour le moment, est qmake, un outil ad hoc développé depuis les premiers jours de Qt, dont le principal défaut est d’être très spécifique à Qt (avec une syntaxe propriétaire) et donc pas facilement intégrable à tous les environnements (de développement, d’intégration continue, etc., surtout dans un contexte de compilation croisée). Il est possible depuis longtemps d’utiliser CMake (surtout depuis Qt 5), mais ce dernier n’est pas aussi bien géré par Qt Creator, par exemple. Pour Qt 6, les développeurs parlaient déjà depuis longtemps d’une nouvelle génération de système de compilation.
C’est pourquoi les développeurs de Qt travaillent depuis un certain temps sur Qbs, un système qui aurait pu remplacer qmake à terme, en exploitant la syntaxe QML (déjà à l’œuvre dans Qt Quick). Cependant, sa dernière version est planifiée pour avril 2019, avec un support jusque fin de l’année 2019. Les raisons derrière ce choix sont que Qbs apporte relativement peu de choses par rapport à CMake, mais qu’il faut le maintenir — un investissement conséquent qui ne se justifie donc pas. De plus, Qbs n’aide en rien à agrandir l’écosystème de Qt : d’une certaine manière, il le dilue plutôt, vu que bon nombre d’outils externes comprennent déjà les projets CMake.
La décision a été récemment annoncée. Qt Creator continuera à comprendre les projets Qbs, au moins jusqu’en 2019. Les développeurs travaillant sur Qbs auront donc plus de temps pour travailler sur d’autres outils, comme Qt Creator. Ce choix est aussi motivé par le fait que CMake est “étonnamment” efficace, au vu de la facilité à implémenter des besoins compliqués, en assez peu de temps. De plus, il apporte une cohérence supplémentaire entre Qt et KDE.
Le travail pour porter Qt Base (les principaux modules de Qt) vers CMake a déjà commencé. Peu de choses sont achevées, mais on dispose d’ores et déjà de scripts pour porter facilement les fichiers de projet qmake vers CMake, par exemple.
Sources : Deprecation of Qbs, [Development] Build system for Qt 6, [Development] wip/cmake status information.
Le système de compilation Qbs pour Qt est abandonné
Qt 6 utilisera le système CMake, "étonnamment" simple à utiliser
Le système de compilation Qbs pour Qt est abandonné
Qt 6 utilisera le système CMake, "étonnamment" simple à utiliser
Le , par dourouc05
Une erreur dans cette actualité ? Signalez-nous-la !