Fix #19
This commit is contained in:
+17
-6
@@ -700,6 +700,11 @@ DeploymentInfo deployQtLibraries(const QString &appDirPath, const QStringList &a
|
||||
}
|
||||
}
|
||||
|
||||
int containsHowOften(QStringList haystack, QString needle) {
|
||||
int result = haystack.filter(needle).length();
|
||||
return result;
|
||||
}
|
||||
|
||||
void deployPlugins(const AppDirInfo &appDirInfo, const QString &pluginSourcePath,
|
||||
const QString pluginDestinationPath, DeploymentInfo deploymentInfo)
|
||||
{
|
||||
@@ -711,27 +716,32 @@ void deployPlugins(const AppDirInfo &appDirInfo, const QString &pluginSourcePath
|
||||
// Plugin white list:
|
||||
QStringList pluginList;
|
||||
|
||||
LogDebug() << "deploymentInfo.deployedLibraries before attempting to bundle required plugins:" << deploymentInfo.deployedLibraries;
|
||||
|
||||
// Platform plugin:
|
||||
if (deploymentInfo.deployedLibraries.contains(QStringLiteral("libQt5Gui"))) {
|
||||
|
||||
if (containsHowOften(deploymentInfo.deployedLibraries, "libQt5Gui")) {
|
||||
LogDebug() << "libQt5Gui detected";
|
||||
pluginList.append("platforms/libqxcb.so");
|
||||
// All image formats (svg if QtSvg.library is used)
|
||||
QStringList imagePlugins = QDir(pluginSourcePath + QStringLiteral("/imageformats")).entryList(QStringList() << QStringLiteral("*.so"));
|
||||
foreach (const QString &plugin, imagePlugins) {
|
||||
if (plugin.contains(QStringLiteral("qsvg"))) {
|
||||
if (deploymentInfo.deployedLibraries.contains(QStringLiteral("QtSvg")))
|
||||
if (containsHowOften(deploymentInfo.deployedLibraries, "libQt5Svg")) {
|
||||
pluginList.append(QStringLiteral("imageformats/") + plugin);
|
||||
}
|
||||
pluginList.append(QStringLiteral("imageformats/") + plugin);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// CUPS print support
|
||||
if (deploymentInfo.deployedLibraries.contains(QStringLiteral("libQt5PrintSupport"))) {
|
||||
if (containsHowOften(deploymentInfo.deployedLibraries, "libQt5PrintSupport")) {
|
||||
pluginList.append("printsupport/libcupsprintersupport.so");
|
||||
}
|
||||
|
||||
// Network
|
||||
if (deploymentInfo.deployedLibraries.contains(QStringLiteral("QtNetwork"))) {
|
||||
if (containsHowOften(deploymentInfo.deployedLibraries, "libQt5Network")) {
|
||||
QStringList bearerPlugins = QDir(pluginSourcePath + QStringLiteral("/bearer")).entryList(QStringList() << QStringLiteral("*.so"));
|
||||
foreach (const QString &plugin, bearerPlugins) {
|
||||
pluginList.append(QStringLiteral("bearer/") + plugin);
|
||||
@@ -739,7 +749,7 @@ void deployPlugins(const AppDirInfo &appDirInfo, const QString &pluginSourcePath
|
||||
}
|
||||
|
||||
// Sql plugins if QtSql.library is in use
|
||||
if (deploymentInfo.deployedLibraries.contains(QStringLiteral("QtSql"))) {
|
||||
if (containsHowOften(deploymentInfo.deployedLibraries, "libQt5Sql")) {
|
||||
QStringList sqlPlugins = QDir(pluginSourcePath + QStringLiteral("/sqldrivers")).entryList(QStringList() << QStringLiteral("*.so"));
|
||||
foreach (const QString &plugin, sqlPlugins) {
|
||||
pluginList.append(QStringLiteral("sqldrivers/") + plugin);
|
||||
@@ -747,7 +757,7 @@ void deployPlugins(const AppDirInfo &appDirInfo, const QString &pluginSourcePath
|
||||
}
|
||||
|
||||
// multimedia plugins if QtMultimedia.library is in use
|
||||
if (deploymentInfo.deployedLibraries.contains(QStringLiteral("QtMultimedia"))) {
|
||||
if (containsHowOften(deploymentInfo.deployedLibraries, "libQt5Multimedia")) {
|
||||
QStringList plugins = QDir(pluginSourcePath + QStringLiteral("/mediaservice")).entryList(QStringList() << QStringLiteral("*.so"));
|
||||
foreach (const QString &plugin, plugins) {
|
||||
pluginList.append(QStringLiteral("mediaservice/") + plugin);
|
||||
@@ -758,6 +768,7 @@ void deployPlugins(const AppDirInfo &appDirInfo, const QString &pluginSourcePath
|
||||
}
|
||||
}
|
||||
|
||||
LogDebug() << "pluginList after having detected hopefully all required plugins:" << pluginList;
|
||||
foreach (const QString &plugin, pluginList) {
|
||||
QString sourcePath = pluginSourcePath + "/" + plugin;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user