summaryrefslogtreecommitdiffstats
path: root/src/windeployqt/main.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2019-04-24 16:39:01 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2019-05-08 11:07:17 +0000
commit8a362d110a2376ba0b112621db67ee58b3bb5d87 (patch)
tree5505978df8212b784392d5c0df005f799a08dfff /src/windeployqt/main.cpp
parent72eac2f5f3d8ea839c915455e4eed66118d06505 (diff)
windeployqt: Add option to disable deployment of the Virtual Keyboard
Add option to suppress the plugin itself and its dependent plugin directory. Fixes: QTBUG-75272 Change-Id: I588e3842416939cd694f40d9b0d98d4773e06daa Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Diffstat (limited to 'src/windeployqt/main.cpp')
-rw-r--r--src/windeployqt/main.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/windeployqt/main.cpp b/src/windeployqt/main.cpp
index f3c0e5fd7..00fa4fbc4 100644
--- a/src/windeployqt/main.cpp
+++ b/src/windeployqt/main.cpp
@@ -174,6 +174,10 @@ static QtModuleEntry qtModuleEntries[] = {
{ QtWebViewModule, "webview", "Qt5WebView", nullptr }
};
+enum QtPlugin {
+ QtVirtualKeyboardPlugin = 0x1
+};
+
static const char webKitProcessC[] = "QtWebProcess";
static const char webEngineProcessC[] = "QtWebEngineProcess";
@@ -260,6 +264,7 @@ struct Options {
bool translations = true;
bool systemD3dCompiler = true;
bool compilerRunTime = false;
+ unsigned disabledPlugins = 0;
AngleDetection angleDetection = AngleDetectionAuto;
bool softwareRasterizer = true;
Platform platform = WindowsDesktop;
@@ -405,6 +410,10 @@ static inline int parseArguments(const QStringList &arguments, QCommandLineParse
QStringLiteral("Deploy compiler runtime (Desktop only)."));
parser->addOption(compilerRunTimeOption);
+ QCommandLineOption noVirtualKeyboardOption(QStringLiteral("no-virtualkeyboard"),
+ QStringLiteral("Disable deployment of the Virtual Keyboard."));
+ parser->addOption(noVirtualKeyboardOption);
+
QCommandLineOption noCompilerRunTimeOption(QStringLiteral("no-compiler-runtime"),
QStringLiteral("Do not deploy compiler runtime (Desktop only)."));
parser->addOption(noCompilerRunTimeOption);
@@ -499,6 +508,9 @@ static inline int parseArguments(const QStringList &arguments, QCommandLineParse
return CommandLineParseError;
}
+ if (parser->isSet(noVirtualKeyboardOption))
+ options->disabledPlugins |= QtVirtualKeyboardPlugin;
+
if (parser->isSet(releaseWithDebugInfoOption))
std::wcerr << "Warning: " << releaseWithDebugInfoOption.names().first() << " is obsolete.";
@@ -878,6 +890,7 @@ static quint64 qtModule(QString module, const QString &infix)
}
QStringList findQtPlugins(quint64 *usedQtModules, quint64 disabledQtModules,
+ unsigned disabledPlugins,
const QString &qtPluginsDirName, const QString &libraryLocation,
const QString &infix,
DebugMatchMode debugMatchModeIn, Platform platform, QString *platformPlugin)
@@ -897,6 +910,8 @@ QStringList findQtPlugins(quint64 *usedQtModules, quint64 disabledQtModules,
: debugMatchModeIn;
QDir subDir(subDirFi.absoluteFilePath());
// Filter out disabled plugins
+ if ((disabledPlugins & QtVirtualKeyboardPlugin) && subDirName == QLatin1String("virtualkeyboard"))
+ continue;
if (disabledQtModules & QtQmlToolingModule && subDirName == QLatin1String("qmltooling"))
continue;
// Filter for platform or any.
@@ -925,6 +940,11 @@ QStringList findQtPlugins(quint64 *usedQtModules, quint64 disabledQtModules,
}
const QStringList plugins = findSharedLibraries(subDir, platform, debugMatchMode, filter);
for (const QString &plugin : plugins) {
+ // Filter out disabled plugins
+ if ((disabledPlugins & QtVirtualKeyboardPlugin)
+ && plugin.startsWith(QLatin1String("qtvirtualkeyboardplugin"))) {
+ continue;
+ }
const QString pluginPath = subDir.absoluteFilePath(plugin);
if (isPlatformPlugin)
*platformPlugin = pluginPath;
@@ -1355,6 +1375,7 @@ static DeployResult deploy(const Options &options,
findQtPlugins(&result.deployedQtLibraries,
// For non-QML applications, disable QML to prevent it from being pulled in by the qtaccessiblequick plugin.
options.disabledLibraries | (usesQml2 ? 0 : (QtQmlModule | QtQuickModule)),
+ options.disabledPlugins,
qmakeVariables.value(QStringLiteral("QT_INSTALL_PLUGINS")), libraryLocation, infix,
debugMatchMode, options.platform, &platformPlugin);