diff options
author | Simon Hausmann <simon.hausmann@qt.io> | 2018-01-22 16:46:03 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2018-01-28 16:37:26 +0000 |
commit | e5b157275d7b924e1a0f39d27958a7ad1eed9cef (patch) | |
tree | 8d08a8a9fb0c79d77449875cc9e62ee6df99b2ea /src/qml/qml/qqmltypeloader.cpp | |
parent | e29047555be764d59c52801553e23767ed367cec (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.cpp | 13 |
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(); } |