Fix bundling of QtQuick/PrivateWidgets
This commit is contained in:
+8
-7
@@ -784,7 +784,7 @@ void deployPlugins(const AppDirInfo &appDirInfo, const QString &pluginSourcePath
|
|||||||
if (containsHowOften(deploymentInfo.deployedLibraries, "libQt5Gui")) {
|
if (containsHowOften(deploymentInfo.deployedLibraries, "libQt5Gui")) {
|
||||||
LogDebug() << "libQt5Gui detected";
|
LogDebug() << "libQt5Gui detected";
|
||||||
pluginList.append("platforms/libqxcb.so");
|
pluginList.append("platforms/libqxcb.so");
|
||||||
// All image formats (svg if QtSvg.library is used)
|
// All image formats (svg if QtSvg library is used)
|
||||||
QStringList imagePlugins = QDir(pluginSourcePath + QStringLiteral("/imageformats")).entryList(QStringList() << QStringLiteral("*.so"));
|
QStringList imagePlugins = QDir(pluginSourcePath + QStringLiteral("/imageformats")).entryList(QStringList() << QStringLiteral("*.so"));
|
||||||
foreach (const QString &plugin, imagePlugins) {
|
foreach (const QString &plugin, imagePlugins) {
|
||||||
if (plugin.contains(QStringLiteral("qsvg"))) {
|
if (plugin.contains(QStringLiteral("qsvg"))) {
|
||||||
@@ -817,7 +817,7 @@ void deployPlugins(const AppDirInfo &appDirInfo, const QString &pluginSourcePath
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sql plugins if QtSql.library is in use
|
// Sql plugins if QtSql library is in use
|
||||||
if (containsHowOften(deploymentInfo.deployedLibraries, "libQt5Sql")) {
|
if (containsHowOften(deploymentInfo.deployedLibraries, "libQt5Sql")) {
|
||||||
QStringList sqlPlugins = QDir(pluginSourcePath + QStringLiteral("/sqldrivers")).entryList(QStringList() << QStringLiteral("*.so"));
|
QStringList sqlPlugins = QDir(pluginSourcePath + QStringLiteral("/sqldrivers")).entryList(QStringList() << QStringLiteral("*.so"));
|
||||||
foreach (const QString &plugin, sqlPlugins) {
|
foreach (const QString &plugin, sqlPlugins) {
|
||||||
@@ -825,7 +825,7 @@ void deployPlugins(const AppDirInfo &appDirInfo, const QString &pluginSourcePath
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// multimedia plugins if QtMultimedia.library is in use
|
// multimedia plugins if QtMultimedia library is in use
|
||||||
if (containsHowOften(deploymentInfo.deployedLibraries, "libQt5Multimedia")) {
|
if (containsHowOften(deploymentInfo.deployedLibraries, "libQt5Multimedia")) {
|
||||||
QStringList plugins = QDir(pluginSourcePath + QStringLiteral("/mediaservice")).entryList(QStringList() << QStringLiteral("*.so"));
|
QStringList plugins = QDir(pluginSourcePath + QStringLiteral("/mediaservice")).entryList(QStringList() << QStringLiteral("*.so"));
|
||||||
foreach (const QString &plugin, plugins) {
|
foreach (const QString &plugin, plugins) {
|
||||||
@@ -958,6 +958,7 @@ bool deployQmlImports(const QString &appDirPath, DeploymentInfo deploymentInfo,
|
|||||||
|
|
||||||
// run qmlimportscanner
|
// run qmlimportscanner
|
||||||
QProcess qmlImportScanner;
|
QProcess qmlImportScanner;
|
||||||
|
LogDebug() << qmlImportScannerPath << argumentList;
|
||||||
qmlImportScanner.start(qmlImportScannerPath, argumentList);
|
qmlImportScanner.start(qmlImportScannerPath, argumentList);
|
||||||
if (!qmlImportScanner.waitForStarted()) {
|
if (!qmlImportScanner.waitForStarted()) {
|
||||||
LogError() << "Could not start qmlimpoortscanner. Process error is" << qmlImportScanner.errorString();
|
LogError() << "Could not start qmlimpoortscanner. Process error is" << qmlImportScanner.errorString();
|
||||||
@@ -1031,14 +1032,14 @@ bool deployQmlImports(const QString &appDirPath, DeploymentInfo deploymentInfo,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Special case:
|
// Special case:
|
||||||
// Use of QtQuick.PrivateWidgets is not discoverable at deploy-time.
|
// Use of QtQuick/PrivateWidgets is not discoverable at deploy-time.
|
||||||
// Recreate the run-time logic here as best as we can - deploy it iff
|
// Recreate the run-time logic here as best as we can - deploy it iff
|
||||||
// 1) QtWidgets.library is used
|
// 1) QtWidgets library is used
|
||||||
// 2) QtQuick.Controls is used
|
// 2) QtQuick.Controls is used
|
||||||
// The intended failure mode is that libwidgetsplugin.dylib will be present
|
// The intended failure mode is that libwidgetsplugin.dylib will be present
|
||||||
// in the app bundle but not used at run-time.
|
// in the app bundle but not used at run-time.
|
||||||
if (deploymentInfo.deployedLibraries.contains("QtWidgets.library") && qtQuickContolsInUse) {
|
if (deploymentInfo.deployedLibraries.contains("QtWidgets") && qtQuickContolsInUse) {
|
||||||
LogNormal() << "Deploying QML import QtQuick.PrivateWidgets";
|
LogNormal() << "Deploying QML import QtQuick/PrivateWidgets";
|
||||||
QString name = "QtQuick/PrivateWidgets";
|
QString name = "QtQuick/PrivateWidgets";
|
||||||
QString path = qmlImportsPath + QLatin1Char('/') + name;
|
QString path = qmlImportsPath + QLatin1Char('/') + name;
|
||||||
deployQmlImport(appDirPath, deploymentInfo.rpathsUsed, path, name);
|
deployQmlImport(appDirPath, deploymentInfo.rpathsUsed, path, name);
|
||||||
|
|||||||
Reference in New Issue
Block a user