diff options
author | Andy Shaw <andy.shaw@theqtcompany.com> | 2015-06-20 01:14:07 +0200 |
---|---|---|
committer | Andy Shaw <andy.shaw@theqtcompany.com> | 2015-12-01 16:11:17 +0000 |
commit | 00648503bb5fb6e29273ac14c478563ea6ebd17e (patch) | |
tree | 84727b97b25070d89317c617499fbf5766ace483 /mkspecs | |
parent | 72de2ae3175f78663dd86027870d0ee25ceee98b (diff) |
Include the qml files into a resource when building a static plugin
Whenever a qml plugin is made static, the qmldir and other related
files need to be compiled into the resources, so they can be found
in the import path. By using qrc:/qt-project.org/imports, we can
have this taken care of automatically for us via the build system,
leaving us to just ensure that it is initialized in the code.
Task-number: QTBUG-35754
Change-Id: Ifa7e2a66fd78dc6713dd7a8661ea2c155b174d35
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Diffstat (limited to 'mkspecs')
-rw-r--r-- | mkspecs/features/qml_module.prf | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/mkspecs/features/qml_module.prf b/mkspecs/features/qml_module.prf index e71543e244..2115b39c04 100644 --- a/mkspecs/features/qml_module.prf +++ b/mkspecs/features/qml_module.prf @@ -13,7 +13,8 @@ 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 = $$qmldir_file for(qmlf, QML_FILES): fq_qml_files += $$absolute_path($$qmlf, $$_PRO_FILE_PWD_) @@ -25,6 +26,8 @@ qml1_target: \ else: \ instbase = $$[QT_INSTALL_QML] +!qml1_target:static: CONFIG += builtin_resources + !force_independent:if(!debug_and_release|!build_all|CONFIG(release, debug|release)) { # These bizarre rules copy the files to the qtbase build directory @@ -32,7 +35,8 @@ else: \ return($$relative_path($$1, $$_PRO_FILE_PWD_)) } - qmlfiles2build.input = fq_qml_files + !builtin_resources: qmlfiles2build.input = fq_qml_files + else: qmlfiles2build.input = qmldir_file qmlfiles2build.output = $$instbase/$$TARGETPATH/${QMAKE_FUNC_FILE_IN_qmlModStripSrcDir} !contains(TEMPLATE, vc.*): qmlfiles2build.variable_out = PRE_TARGETDEPS qmlfiles2build.commands = $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT} @@ -42,8 +46,18 @@ else: \ QMAKE_EXTRA_COMPILERS += qmlfiles2build } +builtin_resources { + URITARGET = $$replace(URI, "\\.", "_") + # Ensure the qml files are included in the resources + $${URITARGET}.files = $$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 +!builtin_resources: qmldir.files = $$fq_qml_files +else: qmldir.files = $$qmldir_file qmldir.path = $$instbase/$$TARGETPATH INSTALLS += qmldir |