QT_GENERATE_DEPLOY_APP_스크립트
애플리케이션의 배포 스크립트를 생성합니다.
이 명령은 Qt6
패키지의 Core
컴포넌트에 정의되어 있으며, 다음과 같이 로드할 수 있습니다:
find_package(Qt6 REQUIRED COMPONENTS Core)
이 명령은 Qt 6.3에 도입되었습니다.
참고: 이 명령은 현재 Windows, macOS 및 Linux에서만 지원됩니다.
개요
qt_generate_deploy_app_script( TARGET target OUTPUT_SCRIPT <var> [NO_TRANSLATIONS] [NO_COMPILER_RUNTIME] [NO_UNSUPPORTED_PLATFORM_ERROR] [DEPLOY_TOOL_OPTIONS ...] [PRE_INCLUDE_REGEXES regexes...] [PRE_EXCLUDE_REGEXES regexes...] [POST_INCLUDE_REGEXES regexes...] [POST_EXCLUDE_REGEXES regexes...] [POST_INCLUDE_FILES files...] [POST_EXCLUDE_FILES files...] )
버전 없는 명령이 비활성화되어 있으면 qt6_generate_deploy_app_script()
대신 사용하세요. 이 명령과 동일한 인수 집합을 지원합니다.
설명
install(TARGETS )로 실행 대상을 설치하면 대상의 실행 파일만 설치됩니다(전체 번들을 복사하는 macOS 앱 번들 제외). 실행 파일에 의존하는 다른 라이브러리나 플러그인은 직접 명시적으로 설치해야 합니다. qt_generate_deploy_app_script()
은 이 과정을 간소화하기 위한 편의 명령입니다. 이 명령은 애플리케이션이 Qt의 권장 설치 디렉토리 구조를 상당히 가깝게 따를 것으로 예상합니다. 이 구조는 GNUInstallDirs에 의해 결정되는 CMake의 기본 설치 레이아웃을 기반으로 합니다(단, macOS 앱 번들은 Apple의 요구 사항을 따릅니다).
이 명령은 OUTPUT_SCRIPT
옵션으로 명명된 변수에 이름이 저장되는 스크립트를 생성합니다. 이 스크립트는 CMake 생성 시에만 작성됩니다. 이 스크립트는 설치( 스크립트) 명령과 함께 사용하기 위한 것으로, 설치(타깃)를 사용하여 애플리케이션의 타깃을 설치한 후에 실행해야 합니다.
배포 스크립트는 표준 설치 레이아웃에 적합한 옵션 세트를 사용하여 qt_deploy_runtime_dependencies() 를 호출합니다. 현재 이 기능은 다음 경우에만 구현됩니다.
- macOS 호스트에서 빌드된 macOS 앱 번들,
- Linux 호스트에서 빌드된 Linux 실행 파일,
- 그리고 Windows 호스트에서 빌드된 Windows 실행 파일에 대해서만 구현됩니다.
Linux 호스트에서 Windows 실행 파일을 교차 빌드하는 경우와 유사한 시나리오는 현재 지원되지 않습니다. 이러한 경우 NO_UNSUPPORTED_PLATFORM_ERROR
옵션을 지정하지 않는 한 qt_generate_deploy_app_script()
을 호출하면 치명적인 오류가 발생합니다.
macOS 이외의 플랫폼에서는 Qt 번역이 자동으로 배포됩니다. 이 동작을 억제하려면 NO_TRANSLATIONS
을 지정하세요. 사용자 정의된 방식으로 번역을 배포하려면 qt_deploy_translations()를 사용하십시오.
Windows 데스크톱 애플리케이션의 경우 컴파일러에 필요한 런타임 파일도 기본적으로 설치됩니다. 이를 방지하려면 NO_COMPILER_RUNTIME
을 지정하세요.
Qt 6.7부터는 DEPLOY_TOOL_OPTIONS
을 사용하여 기본 배포 도구에 추가 옵션을 전달할 수 있습니다. 이 옵션은 기본 배포 도구가 맥디플로이큐트 또는 윈디플로이큐트인 경우에만 적용됩니다.
QML 애플리케이션을 배포하려면 대신 qt_generate_deploy_qml_app_script()를 사용하십시오.
사용자 정의 배포 스크립트를 생성하려면 qt_generate_deploy_script를 사용합니다.
PRE_INCLUDE_REGEXES
, PRE_EXCLUDE_REGEXES
, POST_INCLUDE_REGEXES
, POST_EXCLUDE_REGEXES
, POST_INCLUDE_FILES
, POST_EXCLUDE_FILES
옵션을 지정하여 런타임 종속성의 배포를 제어할 수 있습니다. 이러한 옵션은 모든 플랫폼에 적용되는 것은 아니며 수정되지 않은 상태로 qt_deploy_runtime_dependencies()로 전달됩니다.
예제
다음 예제는 애플리케이션을 배포하는 방법을 보여줍니다 MyApp
.
cmake_minimum_required(VERSION 3.16...3.22) project(MyThings) find_package(Qt6 REQUIRED COMPONENTS Core) qt_standard_project_setup() qt_add_executable(MyApp main.cpp) install(TARGETS MyApp BUNDLE DESTINATION . RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) qt_generate_deploy_app_script( TARGET MyApp OUTPUT_SCRIPT deploy_script NO_UNSUPPORTED_PLATFORM_ERROR ) install(SCRIPT ${deploy_script})
다음 예는 DEPLOY_TOOL_OPTIONS
파라미터를 사용하여 macdeployqt와 windeployqt에 다른 옵션을 전달하는 방법을 보여줍니다.
set(deploy_tool_options_arg "") if(APPLE) set(deploy_tool_options_arg --hardened-runtime) elseif(WIN32) set(deploy_tool_options_arg --no-compiler-runtime) endif() qt_generate_deploy_app_script( TARGET MyApp OUTPUT_SCRIPT deploy_script NO_UNSUPPORTED_PLATFORM_ERROR DEPLOY_TOOL_OPTIONS ${deploy_tool_options_arg} ) install(SCRIPT ${deploy_script})
qt_standard_project_setup(), qt_generate_deploy_script() 및 qt_generate_deploy_qml_app_script()도 참조하십시오 .
© 2025 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.