Browse Source

Fix for PrivateWidgets not being deployed, closes #113

16f2176b15
master
probonopd 8 years ago
parent
commit
e8ea2c94a5
  1. 7
      shared/shared.cpp
  2. 1
      shared/shared.h

7
shared/shared.cpp

@ -810,6 +810,7 @@ DeploymentInfo deployQtLibraries(QList<LibraryInfo> libraries,
LogNormal() << "Deploying the following libraries:" << binaryPaths;
QStringList copiedLibraries;
DeploymentInfo deploymentInfo;
deploymentInfo.requiresQtWidgetsLibrary = false;
deploymentInfo.useLoaderPath = useLoaderPath;
deploymentInfo.pluginPath = qtToBeBundledInfo.value("QT_INSTALL_PLUGINS");
QSet<QString> rpathsUsed;
@ -822,6 +823,10 @@ DeploymentInfo deployQtLibraries(QList<LibraryInfo> libraries,
LogNormal() << "Setting deploymentInfo.qtPath to:" << library.libraryDirectory;
deploymentInfo.qtPath = library.libraryDirectory;
}
if(library.libraryName.contains("libQt") and library.libraryName.contains("Widgets.so")) {
deploymentInfo.requiresQtWidgetsLibrary = true;
}
if (library.libraryDirectory.startsWith(bundlePath)) {
LogNormal() << library.libraryName << "already deployed, skipping.";
@ -1381,7 +1386,7 @@ bool deployQmlImports(const QString &appDirPath, DeploymentInfo deploymentInfo,
// 2) QtQuick.Controls is used
// The intended failure mode is that libwidgetsplugin.dylib will be present
// in the app bundle but not used at run-time.
if (deploymentInfo.deployedLibraries.contains("QtWidgets") && qtQuickContolsInUse) {
if (deploymentInfo.requiresQtWidgetsLibrary && qtQuickContolsInUse) {
LogNormal() << "Deploying QML import QtQuick/PrivateWidgets";
QString name = "QtQuick/PrivateWidgets";
QString path = qtToBeBundledInfo.value("QT_INSTALL_QML") + QLatin1Char('/') + name;

1
shared/shared.h

@ -99,6 +99,7 @@ public:
QSet<QString> rpathsUsed;
bool useLoaderPath;
bool isLibrary;
bool requiresQtWidgetsLibrary;
};
inline QDebug operator<<(QDebug debug, const AppDirInfo &info);

Loading…
Cancel
Save