From ed4cd363b189415e08fcb7930347a188fe25d9c1 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Sun, 14 Aug 2016 18:05:59 +0200 Subject: Fix missing qmlplugindump_wrapper.sh (debug_and_release) qtPrepareTool() must be called outside a build pass, as it protects against concurrent wrapper creation by omitting it during build passes. Change-Id: I7cf080cf78d1099e4893a204ea40d8c6bc63af58 Reviewed-by: Oswald Buddenhagen --- mkspecs/features/qml_plugin.prf | 42 ++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) (limited to 'mkspecs/features/qml_plugin.prf') diff --git a/mkspecs/features/qml_plugin.prf b/mkspecs/features/qml_plugin.prf index 9661da9e8d..ebec1db8da 100644 --- a/mkspecs/features/qml_plugin.prf +++ b/mkspecs/features/qml_plugin.prf @@ -73,6 +73,29 @@ load(qt_common) # directory. Then review and commit the changes made to plugins.qmltypes. # !cross_compile { + qml1_target { + qmlplugindump = qml1plugindump + importpath.name = QML_IMPORT_PATH + } else { + qmlplugindump = qmlplugindump + importpath.name = QML2_IMPORT_PATH + } + importpath.value = + for(qmod, QTREPOS) { + qml1_target: \ + qmod = $$qmod/imports + else: \ + qmod = $$qmod/qml + exists($$qmod): importpath.value += $$shell_path($$qmod) + } + importpath.value = $$unique(importpath.value) + QT_TOOL_ENV = importpath + qtPrepareTool(QMLPLUGINDUMP, $$qmlplugindump) + QT_TOOL_ENV = + + # qtPrepareTool() must be called outside a build pass, as it protects + # against concurrent wrapper creation by omitting it during build passes. + # However, creating the actual targets is reserved to the build passes. build_pass|!debug_and_release { isEmpty(IMPORT_VERSION) { no_cxx_module { @@ -84,25 +107,6 @@ load(qt_common) } load(resolve_target) - qml1_target { - qmlplugindump = qml1plugindump - importpath.name = QML_IMPORT_PATH - } else { - qmlplugindump = qmlplugindump - importpath.name = QML2_IMPORT_PATH - } - importpath.value = - for(qmod, QTREPOS) { - qml1_target: \ - qmod = $$qmod/imports - else: \ - qmod = $$qmod/qml - exists($$qmod): importpath.value += $$shell_path($$qmod) - } - importpath.value = $$unique(importpath.value) - QT_TOOL_ENV = importpath - qtPrepareTool(QMLPLUGINDUMP, $$qmlplugindump) - QT_TOOL_ENV = TARGETPATHBASE = $$replace(TARGETPATH, \\.\\d+\$, ) qmltypes.target = qmltypes qmltypes.commands = $$QMLPLUGINDUMP -nonrelocatable $$replace(TARGETPATHBASE, /, .) $$IMPORT_VERSION > $$QMLTYPEFILE -- cgit v1.2.3 From 0295984786027eed9ac433592794300e7b2546f8 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Wed, 10 Aug 2016 22:58:43 +0200 Subject: Fix missing plugins.qmltypes in static builds plugins.qmltypes should never be built into resources, but always deployed on the file system so Qt Creator can read it. Task-number: QTBUG-52297 Task-number: QTBUG-52299 Task-number: QTBUG-52940 Change-Id: Ieadb82bcb71dd4fb769fa0b7d15ec74e12ce7b42 Reviewed-by: Oswald Buddenhagen --- mkspecs/features/qml_plugin.prf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mkspecs/features/qml_plugin.prf') diff --git a/mkspecs/features/qml_plugin.prf b/mkspecs/features/qml_plugin.prf index f2961f8743..271ca8c460 100644 --- a/mkspecs/features/qml_plugin.prf +++ b/mkspecs/features/qml_plugin.prf @@ -40,7 +40,7 @@ URI = $$replace(TARGETPATH, "/", ".") QMAKE_MOC_OPTIONS += -Muri=$$URI QMLTYPEFILE = $$_PRO_FILE_PWD_/plugins.qmltypes -exists($$QMLTYPEFILE): QML_FILES += $$QMLTYPEFILE +exists($$QMLTYPEFILE): AUX_QML_FILES += $$QMLTYPEFILE # Install rules -- cgit v1.2.3