From d77f81a8b6c048e8bc12c0a0eb3dc7a270175243 Mon Sep 17 00:00:00 2001 From: Naoto Kondo Date: Tue, 12 Jul 2022 17:33:41 +0900 Subject: [PATCH] Add support for the wayland platform --- tools/linuxdeployqt/shared.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tools/linuxdeployqt/shared.cpp b/tools/linuxdeployqt/shared.cpp index 0bf93aec..835a3f77 100644 --- a/tools/linuxdeployqt/shared.cpp +++ b/tools/linuxdeployqt/shared.cpp @@ -1236,6 +1236,28 @@ void deployPlugins(const AppDirInfo &appDirInfo, const QString &pluginSourcePath if (containsHowOften(deploymentInfo.deployedLibraries, "libQt5Gui")) { LogDebug() << "libQt5Gui detected"; pluginList.append("platforms/libqxcb.so"); + + // Platform wayland support + QStringList platformWaylandPlugins = QDir(pluginSourcePath + QStringLiteral("/platforms")).entryList(QStringList() << QStringLiteral("libqwayland-*.so")); + foreach (const QString &plugin, platformWaylandPlugins) { + pluginList.append(QStringLiteral("platforms/") + plugin); + } + + // Always bundle wayland-* plugins + // pluginList.append("wayland-*"); + QStringList waylandPluginDirs = QDir(pluginSourcePath).entryList(QStringList() << QStringLiteral("wayland-*"), QDir::NoDot | QDir::NoDotDot | QDir::Dirs); + foreach (const QString &plugin, waylandPluginDirs) { + QDir pluginDirectory(pluginSourcePath + "/" + plugin); + if (pluginDirectory.exists()) { + //If it is a plugin directory we will deploy the entire directory + QStringList plugins = pluginDirectory.entryList(QStringList() << QStringLiteral("*.so")); + foreach (const QString &pluginFile, plugins) { + pluginList.append(plugin + "/" + pluginFile); + LogDebug() << plugin + "/" + pluginFile << "appended"; + } + } + } + // Platform plugin contexts - apparently needed to enter special characters QStringList platformPluginContexts = QDir(pluginSourcePath + QStringLiteral("/platforminputcontexts")).entryList(QStringList() << QStringLiteral("*.so")); foreach (const QString &plugin, platformPluginContexts) {