aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorMorten Johan Sørvig <morten.sorvig@qt.io>2018-05-11 10:24:18 +0200
committerMorten Johan Sørvig <morten.sorvig@qt.io>2018-05-11 11:13:04 +0200
commit809d305f938177cfb8488dc7fbfc28bc8eef9d20 (patch)
treed43688a9a3ef61af95c91bae3de8b00e6466c817 /tools
parentb742bf9415b42c6e34fab91d2f407eb23dc8e0da (diff)
parent1e82f11629e5572783e5bfc36f24ad10c235ca53 (diff)
Merge remote-tracking branch 'origin/5.11.0' into wip/webassembly
Diffstat (limited to 'tools')
-rw-r--r--tools/qmlcachegen/Qt5QuickCompilerConfig.cmake2
-rw-r--r--tools/qmlcachegen/generateloader.cpp15
-rw-r--r--tools/qmlcachegen/qtquickcompiler.prf14
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) {