QTP0005
Les mots-clés de dépendance qt_add_qml_module acceptent les cibles CMake
Cette politique a été introduite dans Qt 6.8. Elle permet de passer des cibles CMake à qt_add_qml_module() via les mots-clés DEPENDENCIES, IMPORTS, OPTIONAL_IMPORTS, et DEFAULT_IMPORTS.
L'activation de cette politique signifie que les arguments passés à ces mots-clés peuvent être préfixés par TARGET, et sont alors traités comme un nom de cible CMake. L'URI du module QML et le chemin d'importation sont dérivés automatiquement de la cible.
Le comportement OLD de cette politique est que la séquence de jetons TARGET name est traitée comme deux URI distincts, TARGET et name.
Le comportement NEW de cette politique est que TARGET est un mot-clé. L'URI est extrait de la cible du module QML qui suit. Il s'agit d'une erreur matérielle si le nom qui suit TARGET ne fait pas référence à une cible existante ou si cette cible ne correspond pas à un module QML.
Dans les comportements NEW et OLD, il est possible de spécifier une version de module en ajoutant une barre oblique et la version. Voir Déclarer les dépendances d'un module pour plus de détails.
Contexte
Avant cette politique, les dépendances des modules QML devaient être déclarées par leur chaîne URI, par exemple QtQuick ou com.example.mymodule. Cela signifiait que l'URI et, si nécessaire, le chemin d'importation de la dépendance devaient être cohérents avec la cible CMake qui fournit le module.
Avec le comportement NEW, vous pouvez vous référer à une dépendance par son nom de cible CMake à la place. Le système de compilation détermine alors automatiquement l'URI et le chemin d'importation corrects à partir de la cible. Cela évite d'avoir à spécifier manuellement des entrées IMPORT_PATH pour les dépendances situées en dehors du chemin d'importation QML par défaut, réduit la redondance et élimine une catégorie d'erreurs de copier-coller.
Exemple
Considérons un module qui dépend d'un autre module défini dans le même projet. Avec le comportement OLD (ou avant Qt 6.8), l'URI doit être explicitement indiqué :
qt_add_qml_module(my_module
URI MyModule
VERSION 1.0
DEPENDENCIES
OtherModule
)Avec le comportement NEW (politique QTP0005 définie sur NEW), vous pouvez faire référence à la dépendance par son nom de cible CMake :
qt_policy(SET QTP0005 NEW)
qt_add_qml_module(other_module
URI OtherModule
VERSION 1.0
)
qt_add_qml_module(my_module
URI MyModule
VERSION 1.0
DEPENDENCIES
TARGET other_module
)La même syntaxe TARGET est disponible pour IMPORTS, OPTIONAL_IMPORTS, et DEFAULT_IMPORTS.
Comme indiqué ci-dessus, vous pouvez définir la politique explicitement avec qt_policy(SET QTP0005 NEW) avant d'appeler qt_add_qml_module(). Alternativement, appelez qt_standard_project_setup() avec une version REQUIRES de 6.8 ou plus récente pour activer toutes les politiques jusqu'à cette version.
Qt 6.8 émet un avertissement de dépréciation si vous utilisez TARGET comme jeton dans DEPENDENCIES, IMPORTS, OPTIONAL_IMPORTS, ou DEFAULT_IMPORTS alors que la politique est définie à OLD. Utilisez la commande qt_policy pour supprimer l'avertissement en définissant explicitement la politique à OLD ou NEW.
Note : Le comportement OLD d'une politique est déprécié et pourrait être supprimé à l'avenir.
Voir aussi qt_policy, qt_standard_project_setup(), qt_cmake_policies, et qt_add_qml_module.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.