qt_generate_deploy_app_script
Génère un script de déploiement pour une application.
La commande est définie dans le composant Core du paquetage Qt6, qui peut être chargé comme suit :
find_package(Qt6 REQUIRED COMPONENTS Core)
Cette commande a été introduite dans Qt 6.3.
Remarque : cette commande n'est actuellement prise en charge que sous Windows, macOS et Linux.
Synopsis
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 les commandes sans version sont désactivées, utilisez qt6_generate_deploy_app_script() à la place. Elle prend en charge le même ensemble d'arguments que cette commande.
Description de la commande
L'installation d'une cible exécutable avec install(TARGETS) n'installe que l'exécutable de la cible (sauf pour les bundles d'applications macOS, qui copient l'ensemble du bundle). Vous devez explicitement installer vous-même les autres bibliothèques ou plugins dont dépend l'exécutable. qt_generate_deploy_app_script() est une commande de commodité destinée à simplifier ce processus. Elle s'attend à ce que l'application suive de près la structure du répertoire d'installation recommandée par Qt. Cette structure est basée sur la structure d'installation par défaut de CMake, telle que déterminée par GNUInstallDirs (sauf pour les applications macOS, qui suivent les exigences d'Apple).
La commande génère un script dont le nom sera stocké dans la variable nommée par l'option OUTPUT_SCRIPT. Ce script n'est écrit qu'au moment de la génération de CMake. Il est destiné à être utilisé avec la commande install(SCRIPT), qui doit intervenir après que la cible de l'application ait été installée avec install(TARGETS).
Le script de déploiement appellera qt_deploy_runtime_dependencies() avec un ensemble approprié d'options pour l'installation standard. Actuellement, ceci n'est implémenté que pour les bundles d'applications
- les applications macOS construites sur un hôte macOS,
- les exécutables Linux construits sur un hôte Linux,
- et les exécutables Windows construits sur un hôte Windows.
La construction croisée d'un exécutable Windows sur un hôte Linux, ainsi que les scénarios similaires, ne sont pas pris en charge actuellement. L'appel à qt_generate_deploy_app_script() dans un tel cas entraînera une erreur fatale, à moins que l'option NO_UNSUPPORTED_PLATFORM_ERROR ne soit fournie.
Sur les plateformes autres que macOS, les traductions de Qt sont automatiquement déployées. Pour inhiber ce comportement, spécifiez NO_TRANSLATIONS. Utilisez qt_deploy_translations() pour déployer les traductions de manière personnalisée.
Pour les applications de bureau Windows, les fichiers d'exécution requis pour le compilateur sont également installés par défaut. Pour éviter cela, spécifiez NO_COMPILER_RUNTIME.
Depuis Qt 6.7, vous pouvez utiliser DEPLOY_TOOL_OPTIONS pour transmettre des options supplémentaires à l'outil de déploiement sous-jacent. Cela n'a d'effet que si l'outil de déploiement sous-jacent est macdeployqt ou windeployqt.
Pour déployer une application QML, utilisez plutôt qt_generate_deploy_qml_app_script().
Pour générer un script de déploiement personnalisé, utilisez qt_generate_deploy_script.
Les options PRE_INCLUDE_REGEXES, PRE_EXCLUDE_REGEXES, POST_INCLUDE_REGEXES, POST_EXCLUDE_REGEXES, POST_INCLUDE_FILES, et POST_EXCLUDE_FILES peuvent être spécifiées pour contrôler le déploiement des dépendances d'exécution. Ces options ne s'appliquent pas à toutes les plateformes et sont transmises sans modification à qt_deploy_runtime_dependencies().
Les options EXCLUDE_PLUGINS, EXCLUDE_PLUGIN_TYPES, INCLUDE_PLUGINS, et INCLUDE_PLUGIN_TYPES sont utilisées pour sélectionner les plugins Qt. Voir qt_deploy_runtime_dependencies() pour leur documentation.
Vous pouvez désactiver le déploiement des plugins avec l'option NO_PLUGINS.
Exemple de déploiement
L'exemple suivant montre comment déployer une application 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})L'exemple suivant montre comment utiliser le paramètre DEPLOY_TOOL_OPTIONS pour passer différentes options à macdeployqt et 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})Voir aussi qt_standard_project_setup(), qt_generate_deploy_script(), et 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.