Qt
Déploiement d'applications Qt
Recherche…
Déploiement sur Windows
Qt fournit un outil de déploiement pour Windows: windeployqt
. L'outil inspecte un exécutable d'application Qt pour ses dépendances aux modules Qt et crée un répertoire de déploiement avec les fichiers Qt nécessaires pour exécuter le fichier exécutable inspecté. Un script possible peut ressembler à:
set PATH=%PATH%;<qt_install_prefix>/bin
windeployqt --dir /path/to/deployment/dir /path/to/qt/application.exe
La commande set
est appelée pour ajouter le répertoire bin
de Qt à la variable d'environnement PATH
. windeployqt
s'appelle alors:
- Le chemin d'accès au répertoire de déploiement reçoit un argument facultatif fourni avec le paramètre
--dir
(par défaut, le chemin d'accès àwindeployqt
). - Le chemin d'accès à l'exécutable à inspecter est donné en dernier argument.
Le répertoire de déploiement peut ensuite être fourni avec l'exécutable.
REMARQUE:
Si vous utilisez Qt5.7.0 pré-compilé avec vs2013 sous Windows (ne savez pas si toutes les versions ont ce problème) , il est possible que vous ayez besoin de copier manuellement <QTDIR>\5.7\msvc2015\qml
dans votre répertoire bin de votre programme Sinon, le programme s'arrêtera automatiquement après le démarrage.
Voir aussi la documentation Qt .
Intégration avec CMake
Il est possible de lancer windeployqt
et macdeployqt
depuis CMake, mais il faut d'abord trouver le chemin d'accès aux exécutables:
# Retrieve the absolute path to qmake and then use that path to find
# the binaries
get_target_property(_qmake_executable Qt5::qmake IMPORTED_LOCATION)
get_filename_component(_qt_bin_dir "${_qmake_executable}" DIRECTORY)
find_program(WINDEPLOYQT_EXECUTABLE windeployqt HINTS "${_qt_bin_dir}")
find_program(MACDEPLOYQT_EXECUTABLE macdeployqt HINTS "${_qt_bin_dir}")
Pour que windeployqt
trouve les bibliothèques Qt dans leur emplacement installé, le dossier doit être ajouté à %PATH%
. Pour ce faire, pour une cible nommée myapp
après avoir été construite:
add_custom_command(TARGET myapp POST_BUILD
COMMAND "${CMAKE_COMMAND}" -E
env PATH="${_qt_bin_dir}" "${WINDEPLOYQT_EXECUTABLE}"
"$<TARGET_FILE:myapp>"
COMMENT "Running windeployqt..."
)
Pour exécuter macdeployqt
sur un bundle, cela se ferait comme macdeployqt
:
add_custom_command(TARGET myapp POST_BUILD
COMMAND "${MACDEPLOYQT_EXECUTABLE}"
"$<TARGET_FILE_DIR:myapp>/../.."
-always-overwrite
COMMENT "Running macdeployqt..."
)
Déploiement sur Mac
Qt propose un outil de déploiement pour Mac: l'outil de déploiement Mac.
L'outil de déploiement Mac se trouve dans QTDIR/bin/macdeployqt
. Il est conçu pour automatiser le processus de création d’un ensemble d’applications déployable contenant les bibliothèques Qt en tant que structures privées.
L'outil de déploiement mac déploie également les plugins Qt, selon les règles suivantes (sauf si l' option -no-plugins est utilisée ):
- Le plugin de la plateforme est toujours déployé.
- Les versions de débogage des plugins ne sont pas déployées.
- Les plug-ins de concepteur ne sont pas déployés.
- Les plugins de format d'image sont toujours déployés.
- Le plug-in de support d'impression est toujours déployé.
- Les plug-ins de pilote SQL sont déployés si l'application utilise le module SQL Qt.
- Les plugins de script sont déployés si l'application utilise le module Qt Script.
- Le plug-in SVG icon est déployé si l'application utilise le module Qt SVG.
- Le plugin d'accessibilité est toujours déployé.
Pour inclure une bibliothèque tierce dans le regroupement d'applications, copiez la bibliothèque manuellement dans le regroupement, une fois le regroupement créé.
Pour utiliser l'outil macdeployqt
, vous pouvez ouvrir le terminal et taper:
$ QTDIR/bin/macdeployqt <path to app file generated by build>/appFile.app
Le fichier d'application contiendra désormais toutes les bibliothèques Qt utilisées comme frameworks privés.
macdeployqt
prend également en charge les options suivantes
Option | La description |
---|---|
-verbose = <0-3> | 0 = pas de sortie, 1 = erreur / avertissement (par défaut), 2 = normal, 3 = débogage |
-no-plugins | Ignorer le déploiement du plugin |
-dmg | Créer une image de disque .dmg |
-no-strip | Ne lancez pas 'strip' sur les binaires |
-use-debug-libs | Déployer avec les versions de débogage des frameworks et plugins (implique -no-strip) |
-exécutable = | Laisser l'exécutable donné utiliser également les frameworks déployés |
-qmldir = | Déployer les importations utilisées par les fichiers .qml dans le chemin donné |
Des informations détaillées peuvent être obtenues sur Qt Documentation
Déploiement sur Linux
Il existe un outil de déploiement pour Linux sur GitHub . Bien qu'il ne soit pas parfait, il est lié au wiki Qt. Il repose conceptuellement sur l’outil de déploiement Mac Qt et fonctionne de la même manière en fournissant une AppImage .
Étant donné qu'un fichier de bureau doit être fourni avec AppImage, linuxdeployqt
peut l'utiliser pour déterminer les paramètres de la génération.
linuxdeployqt ./path/to/appdir/usr/share/application_name.desktop
Où le fichier de bureau spécifie l'exécutable à exécuter (avec EXEC=
), le nom de l'application et une icône.