QTP0008

Leitet Skriptargumente weiter, ohne sie neu auszuwerten.

Diese Richtlinie wurde in Qt 6.12 eingeführt. Die Richtlinie wirkt sich darauf aus, wie die versionslosen Befehle ` qt_generate_deploy_script() ` und `qt_generate_deploy_app_script() ` ihre Argumente an den Implementierungscode übergeben.

Beide Befehle waren früher Makros. Ein Makro ersetzt seine Argumente wörtlich, und das Ergebnis wird erneut geparst, sodass Escape-Sequenzen und ${} -Referenzen in den Argumentwerten ein zweites Mal ausgewertet wurden. Projekte mussten solche Werte daher zweimal mit Escape-Zeichen versehen, um dies auszugleichen.

Wenn die Richtlinie auf „ OLD “ gesetzt ist, werden die Werte über ein Makro weitergeleitet, sodass sie wie früher neu ausgewertet werden.

Ist die Richtlinie auf „ NEW “ gesetzt, werden die Werte über ein Makro weitergeleitet, sodass sie unverändert bleiben.

Ist die Richtlinie nicht festgelegt, werden die Werte wie bei „ OLD “ neu ausgewertet, und es wird eine „ AUTHOR_WARNING “ ausgegeben – allerdings nur, wenn die Neuauswertung tatsächlich einen der Werte verändert. Die Warnung zeigt die Werte vor und nach der Änderung an, sodass klar ist, was angepasst werden muss.

Betrachten Sie den folgenden Codeausschnitt:

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

Ist die Richtlinie nicht gesetzt oder auf „ OLD “ eingestellt, wird die Referenz expandiert, während die Argumente weitergeleitet werden, und das generierte Skript enthält schließlich „ qt_deploy_qt_conf("/qt.conf") “. Ist die Richtlinie auf „ NEW “ gesetzt, gelangt die Referenz in das generierte Skript und wird expandiert, wenn dieses Skript ausgeführt wird.

Ein weitergeleiteter Wert, der eine ungültige Backslash-Escape-Sequenz enthält, führt beim Aufruf des Befehls zu einem Fehler, solange die Richtlinie nicht festgelegt ist oder auf „ OLD “ gesetzt ist. Bevor der Fehler von CMake gemeldet wird, wird ein „ AUTHOR_WARNING “ ausgegeben, das auf diese Richtlinie verweist.

Hinweis: Das Verhalten „ OLD “ einer Richtlinie ist veraltet und wird möglicherweise in Zukunft entfernt.

Siehe auch qt_policy(), Qt-CMake-Richtlinien, qt_generate_deploy_script() und 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.