diff options
author | Morten Johan Sørvig <morten.sorvig@qt.io> | 2018-05-11 10:24:18 +0200 |
---|---|---|
committer | Morten Johan Sørvig <morten.sorvig@qt.io> | 2018-05-11 11:13:04 +0200 |
commit | 809d305f938177cfb8488dc7fbfc28bc8eef9d20 (patch) | |
tree | d43688a9a3ef61af95c91bae3de8b00e6466c817 /tools | |
parent | b742bf9415b42c6e34fab91d2f407eb23dc8e0da (diff) | |
parent | 1e82f11629e5572783e5bfc36f24ad10c235ca53 (diff) |
Merge remote-tracking branch 'origin/5.11.0' into wip/webassembly
Change-Id: Ice58db1687c0cfbd5a19e84ca9fa81b8d3fa7959
Diffstat (limited to 'tools')
-rw-r--r-- | tools/qmlcachegen/Qt5QuickCompilerConfig.cmake | 2 | ||||
-rw-r--r-- | tools/qmlcachegen/generateloader.cpp | 15 | ||||
-rw-r--r-- | tools/qmlcachegen/qtquickcompiler.prf | 14 |
3 files changed, 20 insertions, 11 deletions
diff --git a/tools/qmlcachegen/Qt5QuickCompilerConfig.cmake b/tools/qmlcachegen/Qt5QuickCompilerConfig.cmake index 6fe1662995..56cb3fb55e 100644 --- a/tools/qmlcachegen/Qt5QuickCompilerConfig.cmake +++ b/tools/qmlcachegen/Qt5QuickCompilerConfig.cmake @@ -44,7 +44,7 @@ function(QTQUICK_COMPILER_ADD_RESOURCES outfiles) set(rcc_file_with_compilation_units) - exec_program(${rcc_path} ARGS -list ${input_resource} OUTPUT_VARIABLE rcc_contents) + exec_program(${rcc_path} ARGS -list \"${input_resource}\" OUTPUT_VARIABLE rcc_contents) string(REGEX REPLACE "[\r\n]+" ";" rcc_contents ${rcc_contents}) foreach(it ${rcc_contents}) get_filename_component(extension ${it} EXT) diff --git a/tools/qmlcachegen/generateloader.cpp b/tools/qmlcachegen/generateloader.cpp index 1a0b987c64..96528a9477 100644 --- a/tools/qmlcachegen/generateloader.cpp +++ b/tools/qmlcachegen/generateloader.cpp @@ -51,6 +51,7 @@ QString symbolNamespaceForPath(const QString &relativePath) symbol.replace(QLatin1Char('.'), QLatin1Char('_')); symbol.replace(QLatin1Char('+'), QLatin1Char('_')); symbol.replace(QLatin1Char('-'), QLatin1Char('_')); + symbol.replace(QLatin1Char(' '), QLatin1Char('_')); return symbol; } @@ -358,15 +359,23 @@ bool generateLoader(const QStringList &compiledFiles, const QString &outputFileN originalResourceFile.truncate(mappingSplit); } - const QString function = QLatin1String("qInitResources_") + qtResourceNameForFile(originalResourceFile); + const QString suffix = qtResourceNameForFile(originalResourceFile); + const QString initFunction = QLatin1String("qInitResources_") + suffix; - stream << QStringLiteral("int QT_MANGLE_NAMESPACE(%1)() {\n").arg(function); + stream << QStringLiteral("int QT_MANGLE_NAMESPACE(%1)() {\n").arg(initFunction); stream << " ::unitRegistry();\n"; if (!newResourceFile.isEmpty()) stream << " Q_INIT_RESOURCE(" << qtResourceNameForFile(newResourceFile) << ");\n"; stream << " return 1;\n"; stream << "}\n"; - stream << "Q_CONSTRUCTOR_FUNCTION(QT_MANGLE_NAMESPACE(" << function << "));\n"; + stream << "Q_CONSTRUCTOR_FUNCTION(QT_MANGLE_NAMESPACE(" << initFunction << "));\n"; + + const QString cleanupFunction = QLatin1String("qCleanupResources_") + suffix; + stream << QStringLiteral("int QT_MANGLE_NAMESPACE(%1)() {\n").arg(cleanupFunction); + if (!newResourceFile.isEmpty()) + stream << " Q_CLEANUP_RESOURCE(" << qtResourceNameForFile(newResourceFile) << ");\n"; + stream << " return 1;\n"; + stream << "}\n"; } } diff --git a/tools/qmlcachegen/qtquickcompiler.prf b/tools/qmlcachegen/qtquickcompiler.prf index 75e474ba70..9fa982ca0f 100644 --- a/tools/qmlcachegen/qtquickcompiler.prf +++ b/tools/qmlcachegen/qtquickcompiler.prf @@ -2,7 +2,7 @@ qtPrepareTool(QML_CACHEGEN, qmlcachegen, _FILTER) qtPrepareTool(QMAKE_RCC, rcc, _DEP) -QMLCACHE_DIR = .qmlcache +isEmpty(QMLCACHE_DIR): QMLCACHE_DIR = . defineReplace(qmlCacheResourceFileOutputName) { name = $$relative_path($$1, $$_PRO_FILE_PWD_) @@ -22,21 +22,21 @@ QMLCACHE_RESOURCE_FILES = for(res, RESOURCES) { absRes = $$absolute_path($$res, $$_PRO_FILE_PWD_) - rccContents = $$system($$QMAKE_RCC_DEP -list $$absRes,lines) + rccContents = $$system($$QMAKE_RCC_DEP -list $$system_quote($$absRes),lines) contains(rccContents,.*\\.js$)|contains(rccContents,.*\\.qml$) { new_resource = $$qmlCacheResourceFileOutputName($$res) mkpath($$dirname(new_resource)) - remaining_files = $$system($$QML_CACHEGEN_FILTER -filter-resource-file -o $$new_resource $$absRes,lines) + remaining_files = $$system($$QML_CACHEGEN_FILTER -filter-resource-file -o $$system_quote($$new_resource) $$system_quote($$absRes),lines) !isEmpty(remaining_files) { NEWRESOURCES += $$new_resource - QMLCACHE_LOADER_FLAGS += --resource-file-mapping=$$absRes=$$new_resource + QMLCACHE_LOADER_FLAGS += --resource-file-mapping=$$shell_quote($$absRes=$$new_resource) } else { - QMLCACHE_LOADER_FLAGS += --resource-file-mapping=$$absRes + QMLCACHE_LOADER_FLAGS += --resource-file-mapping=$$shell_quote($$absRes) } QMLCACHE_RESOURCE_FILES += $$absRes - for(candidate, $$list($$rccContents)) { + for(candidate, rccContents) { contains(candidate,.*\\.js$)|contains(candidate,.*\\.qml$) { QMLCACHE_FILES += $$candidate } @@ -50,7 +50,7 @@ RESOURCES = $$NEWRESOURCES QMLCACHE_RESOURCE_FLAGS = for(res, QMLCACHE_RESOURCE_FILES) { - QMLCACHE_RESOURCE_FLAGS += --resource=$$res + QMLCACHE_RESOURCE_FLAGS += --resource=$$shell_quote($$res) } defineReplace(qmlCacheOutputName) { |