QTP0007
Les guillemets et les caractères d'échappement sont conservés dans les valeurs des arguments transmis aux scripts de déploiement générés.
Cette politique a été introduite dans Qt 6.12. Elle influe sur la manière dont la fonction `qt_generate_deploy_app_script()` écrit les valeurs des mots-clés qu’elle transmet à `qt_deploy_runtime_dependencies()`, tels que ` DEPLOY_TOOL_OPTIONS`, ` PRE_EXCLUDE_REGEXES ` et ` POST_EXCLUDE_FILES`, dans le script de déploiement qu’elle génère.
Si la politique est définie sur OLD, les valeurs sont écrites sans guillemets. Lorsque le script généré s’exécute, CMake sépare chaque valeur par des espaces et interprète les barres obliques inversées qu’elle contient comme des séquences d’échappement. Cela pose des problèmes avec les valeurs contenant des espaces, des barres obliques inversées ou des guillemets doubles.
Si la politique est définie sur « NEW », chaque valeur est écrite sous forme d’argument entre guillemets, avec les barres obliques inversées et les guillemets doubles échappés, de sorte que la valeur parvienne à `qt_deploy_runtime_dependencies()` sans modification.
Lorsque la politique n’est pas définie et qu’une valeur transmise contient un espace, une barre oblique inversée ou un guillemet double, un message « AUTHOR_WARNING » est émis et les valeurs sont écrites sans guillemets pour des raisons de compatibilité ascendante. Les valeurs ne contenant pas ces caractères ne sont pas affectées ; aucun avertissement n’est donc émis pour celles-ci.
Par exemple, une identité de signature de code contenant des espaces :
# QTP0007 not set - AUTHOR_WARNING is emitted
qt_generate_deploy_app_script(
TARGET MyApp
OUTPUT_SCRIPT deploy_script
DEPLOY_TOOL_OPTIONS "-codesign=Developer ID Application: Foo"
)L’identité est transmise à ` macdeployqt ` sous forme de plusieurs arguments, et l’étape de signature de code sélectionne soit la mauvaise identité, soit échoue. En définissant la politique sur ` NEW `, elle est transmise sous forme d’un seul argument :
qt_policy(SET QTP0007 NEW)
qt_generate_deploy_app_script(
TARGET MyApp
OUTPUT_SCRIPT deploy_script
DEPLOY_TOOL_OPTIONS "-codesign=Developer ID Application: Foo"
)Notez qu’un projet qui regroupait plusieurs options dans une seule valeur séparée par des espaces s’appuyait sur le comportement « OLD » pour les séparer, et doit désormais les transmettre sous forme d’éléments de liste distincts une fois la politique définie sur « NEW » :
# Relies on the \c OLD behavior to split the value into four options.
set(options "-hardened-runtime -timestamp -appstore-compliant -verbose=3")# Correct way to pass options with the \c NEW behavior.
set(options -hardened-runtime -timestamp -appstore-compliant -verbose=3)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_app_script() et qt_deploy_runtime_dependencies().
© 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.