Fix qml cache generation for non-prefix builds

Generate cache files right in the target locatioa, similar to how
qml_module.prf uses COPIES to copy .qml source files to the target
location in non-prefix builds.

Change-Id: I06f6112c29ffd212e29a84e29418d042255b5861
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
This commit is contained in:
Simon Hausmann 2017-03-02 16:55:09 +01:00
parent c6917f27cb
commit 38919dc825
1 changed files with 18 additions and 4 deletions

View File

@ -1,12 +1,26 @@
qtPrepareTool(QML_CACHEGEN, qmlcachegen)
isEmpty(TARGETPATH): error("Must set TARGETPATH (QML import name) for ahead-of-time QML cache generation")
!isEmpty(QT_TARGET_ARCH):QML_CACHEGEN_ARCH=$$QT_TARGET_ARCH
else:QML_CACHEGEN_ARCH=$$QT_ARCH
qmlcachegen.input = QML_FILES
qmlcachegen.output = ${QMAKE_FILE_IN}c
qmlcachegen.commands = $$QML_CACHEGEN --target-architecture=$$QML_CACHEGEN_ARCH ${QMAKE_FILE_IN}
CACHEGEN_FILES=
for(qmlf, QML_FILES) {
contains(qmlf,.*\\.js$)|contains(qmlf,.*\\.qml$) {
CACHEGEN_FILES += $$qmlf
}
}
qmlcachegen.input = CACHEGEN_FILES
prefix_build {
qmlcachegen.output = ${QMAKE_FILE_IN}c
} else {
qmlcachegen.output = $$[QT_INSTALL_QML]/$$TARGETPATH/${QMAKE_FILE_IN}c
qmlcachegen.CONFIG = no_link target_predeps
}
qmlcachegen.commands = $$QML_CACHEGEN --target-architecture=$$QML_CACHEGEN_ARCH -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN}
qmlcachegen.name = Generate QML Cache ${QMAKE_FILE_IN}
qmlcachegen.variable_out = AUX_QML_FILES
qmlcachegen.variable_out = GENERATED_FILES
QMAKE_EXTRA_COMPILERS += qmlcachegen