Qbs est le futur du système de compilation de Qt. Il utilise le langage QML pour décrire la compilation complète d’un projet, au lieu d’une syntaxe ad-hoc, comme c’est souvent le cas (par exemple avec qmake).
Cette nouvelle version continue d’améliorer la syntaxe de description des projets. Par exemple, les propriétés qbs.targetOS et qbs.toolchain sont maintenant dédoublées avec qbs.targetPlatform et qbs.toolchainType : l’idée est que les nouvelles propriétés sont utilisées exclusivement en écriture (depuis la ligne de commande ou un fichier Qbs), tandis que les anciennes sont utilisées pour des comparaisons. Ainsi, au lieu d’écrire du code comme
qbs.targetPlatform === "macos" || qbs.targetPlatform === "ios" || qbs.targetPlatform === "tvos" || qbs.targetPlatform === "watchos", on pourra se limiter à
qbs.targetOS.contains("darwin"
Les modules peuvent maintenant définir leurs propres artefacts de compilation avec la propriété filesAreTargets de l’item Group. La prochaine version de Qbs devrait ajouter la possibilité de générer automatiquement ces groupes depuis des produits.
La nouvelle propriété cpp.rpathOrigin correspond à @loader_path pour macOS et à $ORIGIN pour les systèmes Unix. Des drapeaux peuvent être passés lors de l’édition des liens par cpp.driverLinkerFlags. La valeur c++17 est parfaitement gérée pour cpp.cxxLanguageVersion, en émettant le paramètre correspondant selon le compilateur.
La syntaxe pour le passage des noms de configuration en ligne de commande a été revue pour être moins confuse. Ils utilisent maintenant la clé config. Ainsi, pour compiler un projet pour les configurations debug et release, on peut utiliser la ligne de commande qbs config:debug config:release.
Télécharger Qbs 1.11.
Source : Qbs 1.11 released.
La prochaine génération de systèmes de compilation pour Qt s'avance
Sortie de Qbs 1.11 avec une syntaxe retravaillée
La prochaine génération de systèmes de compilation pour Qt s'avance
Sortie de Qbs 1.11 avec une syntaxe retravaillée
Le , par dourouc05
Une erreur dans cette actualité ? Signalez-nous-la !