QTP0008
스크립트 인수를 재평가하지 않고 그대로 전달합니다.
이 정책은 Qt 6.12에서 도입되었습니다. 이 정책은 버전이 지정되지 않은 qt_generate_deploy_script() 및 qt_generate_deploy_app_script() 명령어가 인수를 구현 코드에 전달하는 방식에 영향을 미칩니다.
두 명령어 모두 이전에는 매크로였습니다. 매크로는 인수를 문자 그대로 대체하고 그 결과를 다시 파싱하므로, 인수 값에 포함된 이스케이프 시퀀스와 ${} 참조는 두 번째로 평가되었습니다. 프로젝트에서는 이를 보완하기 위해 해당 값을 두 번 이스케이프 처리해야 했습니다.
정책이 ` 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.