summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2017-04-20 15:32:01 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2017-04-21 12:14:19 +0000
commit1a7bc520c5df4da80b7e65acbec1f546f9c87870 (patch)
tree67835f16544f32eebaa76e17071fc43836296185
parent5c7b771829c52400ddd8f441972b37ce92da3b78 (diff)
windeployqt: Adapt to QML cache filesv5.9.0-beta3
Extend the file filters to match cache files and deploy complete directories for Quick Controls 1 if cache files are detected. Task-number: QTBUG-60258 Change-Id: I903789b1cbca0e747fa4198230b3b917b68ab27b Reviewed-by: J-P Nurmi <jpnurmi@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
-rw-r--r--src/windeployqt/main.cpp23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/windeployqt/main.cpp b/src/windeployqt/main.cpp
index 07c9513e0..d76ba774a 100644
--- a/src/windeployqt/main.cpp
+++ b/src/windeployqt/main.cpp
@@ -729,6 +729,16 @@ static QString pdbFileName(QString libraryFileName)
return libraryFileName;
}
+static inline QStringList qmlCacheFileFilters()
+{
+ return QStringList() << QStringLiteral("*.jsc") << QStringLiteral("*.qmlc");
+}
+
+static bool hasQmlCacheFiles(const QString &path)
+{
+ return !QDir(path).entryInfoList(qmlCacheFileFilters(), QDir::Files).isEmpty();
+}
+
// File entry filter function for updateFile() that returns a list of files for
// QML import trees: DLLs (matching debgug) and .qml/,js, etc.
class QmlDirectoryFileEntryFunction {
@@ -763,9 +773,13 @@ private:
static inline QStringList qmlNameFilters(unsigned flags)
{
QStringList result;
- result << QStringLiteral("qmldir") << QStringLiteral("*.qmltypes");
- if (!(flags & SkipSources))
- result << QStringLiteral("*.js") << QStringLiteral("*.qml") << QStringLiteral("*.png");
+ result << QStringLiteral("qmldir") << QStringLiteral("*.qmltypes")
+ << QStringLiteral("*.frag") << QStringLiteral("*.vert") // Shaders
+ << QStringLiteral("*.ttf");
+ if (!(flags & SkipSources)) {
+ result << QStringLiteral("*.js") << QStringLiteral("*.qml") << QStringLiteral("*.png");
+ result.append(qmlCacheFileFilters());
+ }
return result;
}
@@ -1429,7 +1443,8 @@ static DeployResult deploy(const Options &options,
return result;
unsigned updateFileFlags = options.updateFileFlags | SkipQmlDesignerSpecificsDirectories;
unsigned qmlDirectoryFileFlags = 0;
- if (quickControlsImportPath(module.sourcePath) == 1) { // QML files of Controls 1 not needed
+ // QML files of Controls 1 not needed unless cached files are present (5.9)
+ if (quickControlsImportPath(module.sourcePath) == 1 && !hasQmlCacheFiles(module.sourcePath)) {
updateFileFlags |= RemoveEmptyQmlDirectories;
qmlDirectoryFileFlags |= QmlDirectoryFileEntryFunction::SkipSources;
}