QT_DEPLOY_SUPPORT | Qt Core 6.4.3

- Qt 6.4
- Qt Core
- CMake Variables in Qt6 Core
- QT_DEPLOY_SUPPORT
- Qt 6.4.3 Reference Documentation

# QT_DEPLOY_SUPPORT

Name of the file to include for setting up deployment support.

This variable was introduced in Qt 6.3.

Note: This variable is in technology preview and may change in future releases.

Note: The value of this variable should never be modified by project code.

This configure-phase variable is set by the Core package. It is intended to be used as the first line of any deployment script to ensure access to the deployment APIs provided by Qt. Such deployment scripts do not run during CMake's configure phase, they are executed during installation or as part of a post-build rule.

The following example shows one way the variable would be used when installing an application, along with its runtime dependencies:

     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)

     set_target_properties(MyApp PROPERTIES
         WIN32_EXECUTABLE TRUE
         MACOSX_BUNDLE TRUE
     )

     # App bundles on macOS have an .app suffix
     if(APPLE)
         set(executable_path "$<TARGET_FILE_NAME:MyApp>.app")
     else()
         set(executable_path "\${QT_DEPLOY_BIN_DIR}/$<TARGET_FILE_NAME:MyApp>")
     endif()

     # Helper app, not necessarily built as part of this project.
     qt_add_executable(HelperApp helper.cpp)
     set(helper_app_path "\${QT_DEPLOY_BIN_DIR}/$<TARGET_FILE_NAME:HelperApp>")

     # The following script must only be executed at install time
     set(deploy_script "${CMAKE_CURRENT_BINARY_DIR}/deploy_MyApp.cmake")

     file(GENERATE OUTPUT ${deploy_script} CONTENT "
     # Including the file pointed to by QT_DEPLOY_SUPPORT ensures the generated
     # deployment script has access to qt_deploy_runtime_dependencies()
     include(\"${QT_DEPLOY_SUPPORT}\")
     qt_deploy_runtime_dependencies(
         EXECUTABLE \"${executable_path}\"
         ADDITIONAL_EXECUTABLES \"${helper_app_path}\"
         GENERATE_QT_CONF
         VERBOSE
     )")

     # Omitting RUNTIME DESTINATION will install a non-bundle target to CMAKE_INSTALL_BINDIR,
     # which coincides with the default value of QT_DEPLOY_BIN_DIR used above, './bin'.
     # Installing macOS bundles always requires an explicit BUNDLE DESTINATION option.
     install(TARGETS MyApp HelperApp    # Install to CMAKE_INSTALL_PREFIX/bin/MyApp.exe
                                        #                           and ./binHelperApp.exe
             BUNDLE  DESTINATION .      # Install to CMAKE_INSTALL_PREFIX/MyApp.app/Contents/MacOS/MyApp
     )
     install(SCRIPT ${deploy_script})    # Add its runtime dependencies

See also qt_deploy_runtime_dependencies() and qt_deploy_qml_imports().