En esta página

qt_generate_deploy_app_script

Genera un script de despliegue para una aplicación.

El comando está definido en el componente Core del paquete Qt6, que puede cargarse de este modo:

find_package(Qt6 REQUIRED COMPONENTS Core)

Este comando se introdujo en Qt 6.3.

Nota: Actualmente, este comando sólo es compatible con Windows, macOS y Linux.

Sinopsis

qt_generate_deploy_app_script(
    TARGET target
    OUTPUT_SCRIPT <var>
    [NO_TRANSLATIONS]
    [NO_COMPILER_RUNTIME]
    [NO_UNSUPPORTED_PLATFORM_ERROR]
    [NO_PLUGINS]                                  # since Qt 6.10
    [EXCLUDE_PLUGIN_TYPES type_or_target...]      # since Qt 6.10
    [INCLUDE_PLUGIN_TYPES type_or_target...]      # since Qt 6.10
    [EXCLUDE_PLUGINS name...]                     # since Qt 6.10
    [INCLUDE_PLUGINS name...]                     # since Qt 6.10
    [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...]
)

Si los comandos versionless están deshabilitados, utilice qt6_generate_deploy_app_script() en su lugar. Admite el mismo conjunto de argumentos que este comando.

Descripción

Al instalar un objetivo ejecutable con install(TARGETS) sólo se instala el ejecutable del objetivo (excepto en el caso de los paquetes de aplicaciones para macOS, en los que se copia el paquete completo). Tendrás que instalar explícitamente cualquier otra librería o plugin del que dependa el ejecutable. qt_generate_deploy_app_script() es un comando que simplifica el proceso. Espera que la aplicación siga la estructura de directorios de instalación recomendada por Qt. Esta estructura se basa en la distribución de instalación por defecto de CMake, determinada por GNUInstallDirs (excepto para los paquetes de aplicaciones macOS, que siguen los requisitos de Apple).

El comando genera un script cuyo nombre se almacenará en la variable nombrada por la opción OUTPUT_SCRIPT. Ese script sólo se escribe en el momento de generar CMake. Está pensado para ser utilizado con el comando install(SCRIPT), que debería venir después de que el objetivo de la aplicación haya sido instalado utilizando install(TARGETS).

El script de despliegue llamará a qt_deploy_runtime_dependencies() con un conjunto adecuado de opciones para la disposición estándar de instalación. Actualmente, esto sólo se implementa para

  • Paquetes de aplicaciones macOS creados en un host macOS,
  • ejecutables Linux creados en un host Linux,
  • y ejecutables Windows creados en un host Windows.

La creación cruzada de un ejecutable Windows en un host Linux, así como otros escenarios similares, no son compatibles actualmente. Llamar a qt_generate_deploy_app_script() en tal caso dará lugar a un error fatal, a menos que se indique la opción NO_UNSUPPORTED_PLATFORM_ERROR.

En plataformas distintas de macOS, las traducciones de Qt se despliegan automáticamente. Para evitarlo, especifique NO_TRANSLATIONS. Utilice qt_deploy_translations() para desplegar las traducciones de forma personalizada.

Para las aplicaciones de escritorio de Windows, los archivos de tiempo de ejecución necesarios para el compilador también se instalan de forma predeterminada. Para evitarlo, especifique NO_COMPILER_RUNTIME.

Desde Qt 6.7, puede utilizar DEPLOY_TOOL_OPTIONS para pasar opciones adicionales a la herramienta de despliegue subyacente. Esto sólo tiene efecto si la herramienta de despliegue subyacente es macdeployqt o windeployqt.

Para desplegar una aplicación QML, utilice qt_generate_deploy_qml_app_script() en su lugar.

Para generar un script de despliegue personalizado, utilice qt_generate_deploy_script.

Las opciones PRE_INCLUDE_REGEXES, PRE_EXCLUDE_REGEXES, POST_INCLUDE_REGEXES, POST_EXCLUDE_REGEXES, POST_INCLUDE_FILES, y POST_EXCLUDE_FILES pueden especificarse para controlar el despliegue de dependencias en tiempo de ejecución. Estas opciones no se aplican a todas las plataformas y se envían sin modificar a qt_deploy_runtime_dependencies().

Las opciones EXCLUDE_PLUGINS, EXCLUDE_PLUGIN_TYPES, INCLUDE_PLUGINS, y INCLUDE_PLUGIN_TYPES se utilizan para seleccionar plugins de Qt. Ver qt_deploy_runtime_dependencies() para su documentación.

Puede desactivar el despliegue de plugins con la opción NO_PLUGINS.

Ejemplo

El siguiente ejemplo muestra cómo desplegar una aplicación 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})

El siguiente ejemplo muestra cómo utilizar el parámetro DEPLOY_TOOL_OPTIONS para pasar diferentes opciones a macdeployqt y windeployqt.

set(deploy_tool_options_arg "")
if(APPLE)
    set(deploy_tool_options_arg
        -hardened-runtime
        "\"-codesign=Developer ID Application: Joe Developer (1234567890)\""
    )
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})

Ver también qt_standard_project_setup(), qt_generate_deploy_script(), y qt_generate_deploy_qml_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.