QTP0008

Transmet les arguments du script de déploiement sans les réévaluer.

Cette politique a été introduite dans Qt 6.12. Elle affecte la manière dont les commandes sans version qt_generate_deploy_script() et qt_generate_deploy_app_script() transmettent leurs arguments au code d’implémentation.

Ces deux commandes étaient auparavant des macros. Une macro remplace ses arguments textuellement et le résultat est analysé à nouveau ; par conséquent, les séquences d’échappement et les références ${} s contenues dans les valeurs des arguments étaient évaluées une seconde fois. Les projets devaient échapper ces valeurs deux fois pour compenser.

Si la politique est définie sur « OLD », les valeurs sont transmises via une macro ; elles sont donc réévaluées comme auparavant.

Si la politique est définie sur « NEW », les valeurs sont transmises via une fonction, et restent donc inchangées.

Lorsque la politique n’est pas définie, les valeurs sont réévaluées comme si la valeur « OLD » était définie, et un avertissement « AUTHOR_WARNING » est émis, mais uniquement si la réévaluation modifie effectivement l’une des valeurs. L’avertissement affiche les valeurs avant et après, afin d’indiquer clairement ce qui doit être adapté.

Considérons l’extrait de code ci-dessous :

qt_generate_deploy_script(
    OUTPUT_SCRIPT deploy_script
    CONTENT "
qt_deploy_qt_conf(\"\${QT_DEPLOY_PREFIX}/qt.conf\")
"
)

Lorsque la politique n’est pas définie ou est réglée sur « OLD », la référence est développée tandis que les arguments sont transmis, et le script généré contient alors « qt_deploy_qt_conf("/qt.conf") ». Lorsque la politique est définie sur « NEW », la référence parvient au script généré et est développée lors de l’exécution de ce script.

Une valeur transmise contenant une échappement par barre oblique inversée non valide entraînera un échec lors de l’invocation de la commande si la politique n’est pas définie ou est définie sur « OLD ». Un message d’erreur « AUTHOR_WARNING » faisant référence à cette politique est émis avant que l’erreur ne soit signalée par CMake.

Remarque : le comportement « OLD » d’une politique est obsolète et pourrait être supprimé à l’avenir.

Voir également qt_policy(), les politiques CMake de Qt, qt_generate_deploy_script() et qt_generate_deploy_app_script().

© 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.