QTP0008
スクリプトの引数を再評価せずにデプロイします。
このポリシーは Qt 6.12 で導入されました。このポリシーは、バージョン指定のない `qt_generate_deploy_script()` および`qt_generate_deploy_app_script()` コマンドが、引数を実装コードにどのように渡すかに影響を与えます。
以前は、これらのコマンドはいずれもマクロでした。マクロは引数を文字通り置換し、その結果が再度解析されるため、引数値に含まれるエスケープシーケンスや${} 参照は2度評価されていました。プロジェクト側では、これを補うために、そのような値を2回エスケープする必要がありました。
ポリシーが `OLD` に設定されている場合、値はマクロを介して渡されるため、以前と同様に再評価されます。
ポリシーが `NEW` に設定されている場合、値はマクロを介して渡されるため、従来通り再評価されます。
ポリシーが設定されていない場合、値は「OLD 」と同様に再評価され、「AUTHOR_WARNING 」が出力されますが、これは再評価によって実際に値のいずれかが変更された場合に限られます。この警告には変更前後の値が表示されるため、どのような修正が必要かが明確になります。
以下のコードスニペットを考えてみましょう:
qt_generate_deploy_script(
OUTPUT_SCRIPT deploy_script
CONTENT "
qt_deploy_qt_conf(\"\${QT_DEPLOY_PREFIX}/qt.conf\")
"
)ポリシーが未設定またはOLD の場合、引数が転送される際に参照が展開され、生成されたスクリプトにはqt_deploy_qt_conf("/qt.conf") が含まれることになります。ポリシーがNEW に設定されている場合、参照は生成されたスクリプトに到達し、そのスクリプトの実行時に展開されます。
ポリシーが未設定またはOLD の場合、無効なバックスラッシュエスケープを含む転送された値は、コマンドの実行時にエラーとなります。CMakeによってエラーが報告される前に、このポリシーを参照するAUTHOR_WARNING が出力されます。
注: ポリシーの `OLD `挙動は 非推奨となっており、将来的に削除される可能性があります。
qt_policy()、Qt CMake ポリシー、qt_generate_deploy_script()、および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.