summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/qml_module.prf
diff options
context:
space:
mode:
Diffstat (limited to 'mkspecs/features/qml_module.prf')
-rw-r--r--mkspecs/features/qml_module.prf43
1 files changed, 38 insertions, 5 deletions
diff --git a/mkspecs/features/qml_module.prf b/mkspecs/features/qml_module.prf
index b09d42a0a4..4db0040dc5 100644
--- a/mkspecs/features/qml_module.prf
+++ b/mkspecs/features/qml_module.prf
@@ -13,19 +13,52 @@ equals(TEMPLATE, app): TEMPLATE = aux
isEmpty(TARGETPATH): error("Must set TARGETPATH (QML import name)")
-fq_qml_files = $$_PRO_FILE_PWD_/qmldir
+qmldir_file = $$_PRO_FILE_PWD_/qmldir
+fq_qml_files =
for(qmlf, QML_FILES): fq_qml_files += $$absolute_path($$qmlf, $$_PRO_FILE_PWD_)
-qml1_target: \
+fq_aux_qml_files =
+for(qmlf, AUX_QML_FILES): fq_aux_qml_files += $$absolute_path($$qmlf, $$_PRO_FILE_PWD_)
+
+load(qt_build_paths)
+
+qml1_target {
+ DESTDIR = $$MODULE_BASE_OUTDIR/imports/$$TARGETPATH
instbase = $$[QT_INSTALL_IMPORTS]
-else: \
+} else {
+ DESTDIR = $$MODULE_BASE_OUTDIR/qml/$$TARGETPATH
instbase = $$[QT_INSTALL_QML]
+}
+
+!qml1_target:static: CONFIG += builtin_resources
+
+builtin_resources {
+ URITARGET = $$replace(URI, "\\.", "_")
+ # Ensure the QML files are included in the resources. In static builds,
+ # the QML engine reads also the qmldir file from the resources.
+ $${URITARGET}.files = $$qmldir_file $$fq_qml_files
+ # qt-project.org/imports is the path used for locating imports inside the resources
+ $${URITARGET}.prefix = /qt-project.org/imports/$$TARGETPATH
+ RESOURCES += $${URITARGET}
+}
# Install rules
qmldir.base = $$_PRO_FILE_PWD_
-qmldir.files = $$fq_qml_files
+# Tools need qmldir and plugins.qmltypes always installed on the file system
+qmldir.files = $$qmldir_file $$fq_aux_qml_files
+!builtin_resources: qmldir.files += $$fq_qml_files
qmldir.path = $$instbase/$$TARGETPATH
INSTALLS += qmldir
-!prefix_build: COPIES += qmldir
+!debug_and_release|!build_all|CONFIG(release, debug|release) {
+ !prefix_build {
+ COPIES += qmldir
+ } else {
+ # For non-installed static builds, tools need qmldir and plugins.qmltypes
+ # files in the build dir
+ qmldir2build.files = $$qmldir_file $$fq_aux_qml_files
+ qmldir2build.path = $$DESTDIR
+ COPIES += qmldir2build
+ }
+}