diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2017-04-20 15:32:01 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2017-04-21 12:14:19 +0000 |
commit | 1a7bc520c5df4da80b7e65acbec1f546f9c87870 (patch) | |
tree | 67835f16544f32eebaa76e17071fc43836296185 | |
parent | 5c7b771829c52400ddd8f441972b37ce92da3b78 (diff) | |
download | qttools-1a7bc520c5df4da80b7e65acbec1f546f9c87870.tar.gz |
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.cpp | 23 |
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; } |