aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmltypeloader.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@qt.io>2018-01-22 16:46:03 +0100
committerLars Knoll <lars.knoll@qt.io>2018-01-28 16:37:26 +0000
commite5b157275d7b924e1a0f39d27958a7ad1eed9cef (patch)
tree8d08a8a9fb0c79d77449875cc9e62ee6df99b2ea /src/qml/qml/qqmltypeloader.cpp
parente29047555be764d59c52801553e23767ed367cec (diff)
Add support for compiling QML/JS files ahead of time in resources
This is bringing over the loading infrastructure from the Qt Quick Compiler that allows embedding qml/js files in resources and compiling them ahead of time. At the moment, the approach of generating one cpp file per qml/js file and the loader stub is needed because the build system does not support dynamic resource generation. In addition, as per QTBUG-60961, we must ensure that the generated data structures are aligned. To retain compatibility this is enabled via CONFIG += qtquickcompiler, but we may need to find a new name (but should keep the old one in any case). Task-number: QTBUG-60961 Change-Id: Ia9839bf98d3af4c50636b6e06815364a9fc7ee57 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/qml/qml/qqmltypeloader.cpp')
-rw-r--r--src/qml/qml/qqmltypeloader.cpp13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp
index 42d82afef4..132c0f64c0 100644
--- a/src/qml/qml/qqmltypeloader.cpp
+++ b/src/qml/qml/qqmltypeloader.cpp
@@ -2428,15 +2428,10 @@ void QQmlTypeData::dataReceived(const SourceCodeData &data)
void QQmlTypeData::initializeFromCachedUnit(const QQmlPrivate::CachedQmlUnit *unit)
{
m_document.reset(new QmlIR::Document(isDebugging()));
- if (unit->loadIR) {
- // old code path for older generated code
- unit->loadIR(m_document.data(), unit);
- } else {
- // new code path
- QmlIR::IRLoader loader(unit->qmlData, m_document.data());
- loader.load();
- m_document->javaScriptCompilationUnit.adopt(unit->createCompilationUnit());
- }
+ QmlIR::IRLoader loader(unit->qmlData, m_document.data());
+ loader.load();
+ m_document->jsModule.fileName = finalUrlString();
+ m_document->javaScriptCompilationUnit.adopt(unit->createCompilationUnit());
continueLoadFromIR();
}