factor qml_module out of qml_plugin
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>
Mon, 6 Aug 2012 18:39:49 +0000 (20:39 +0200)
committerQt by Nokia <qt-info@nokia.com>
Tue, 7 Aug 2012 21:27:17 +0000 (23:27 +0200)
this makes it comfortable to create qml-only modules

Change-Id: I17a5a3ee24210b93db05e50502c6ca91a4e7a9d8
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
mkspecs/features/qml_module.prf [new file with mode: 0644]
mkspecs/features/qml_plugin.prf

diff --git a/mkspecs/features/qml_module.prf b/mkspecs/features/qml_module.prf
new file mode 100644 (file)
index 0000000..cf62a86
--- /dev/null
@@ -0,0 +1,28 @@
+equals(TEMPLATE, app): TEMPLATE = aux
+
+isEmpty(TARGETPATH): error("Must set TARGETPATH (QML import name)")
+
+fq_qml_files = $$_PRO_FILE_PWD_/qmldir
+
+for(qmlf, QML_FILES): fq_qml_files += $$absolute_path($$qmlf, $$_PRO_FILE_PWD_)
+
+# Only for Qt Creator's project view
+OTHER_FILES += $$fq_qml_files
+
+exists($$[QT_HOST_PREFIX]/.qmake.cache) {
+    # These bizarre rules copy the files to the qtbase build directory
+
+    qmlfiles2build.input = fq_qml_files
+    qmlfiles2build.output = $$[QT_INSTALL_IMPORTS]/$$TARGETPATH/${QMAKE_FILE_BASE}${QMAKE_FILE_EXT}
+    !contains(TEMPLATE, vc.*): qmlfiles2build.variable_out = PRE_TARGETDEPS
+    qmlfiles2build.commands = $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
+    qmlfiles2build.name = COPY ${QMAKE_FILE_IN}
+    qmlfiles2build.CONFIG = no_link no_clean
+
+    QMAKE_EXTRA_COMPILERS += qmlfiles2build
+}
+
+# Install rules
+qmldir.files = $$fq_qml_files
+qmldir.path = $$[QT_INSTALL_IMPORTS]/$$TARGETPATH
+INSTALLS += qmldir
index 94f96f6..5bbead4 100644 (file)
@@ -10,38 +10,13 @@ isEmpty(CXX_MODULE) {
 isEmpty(TARGETPATH): TARGETPATH = $$eval(QT.$${CXX_MODULE}.name)
 DESTDIR = $$eval(QT.$${CXX_MODULE}.imports)/$$TARGETPATH
 
-QMLDIRFILE = $$_PRO_FILE_PWD_/qmldir
-fq_qml_files = $$QMLDIRFILE
-
 QMLTYPEFILE = $$_PRO_FILE_PWD_/plugins.qmltypes
-exists($$QMLTYPEFILE): fq_qml_files += $$QMLTYPEFILE
-
-for(qmlf, QML_FILES): fq_qml_files += $$absolute_path($$qmlf, $$_PRO_FILE_PWD_)
-
-# Only for Qt Creator's project view
-OTHER_FILES += $$fq_qml_files
-
-exists($$[QT_HOST_PREFIX]/.qmake.cache) {
-    # These bizarre rules copy the files to the qtbase build directory
-
-    qmlfiles2build.input = fq_qml_files
-    qmlfiles2build.output = $$[QT_INSTALL_IMPORTS]/$$TARGETPATH/${QMAKE_FILE_BASE}${QMAKE_FILE_EXT}
-    !contains(TEMPLATE, vc.*): qmlfiles2build.variable_out = PRE_TARGETDEPS
-    qmlfiles2build.commands = $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
-    qmlfiles2build.name = COPY ${QMAKE_FILE_IN}
-    qmlfiles2build.CONFIG = no_link no_clean
-
-    QMAKE_EXTRA_COMPILERS += qmlfiles2build
-}
+exists($$QMLTYPEFILE): QML_FILES += $$QMLTYPEFILE
 
 # Install rules
 
 target.path = $$[QT_INSTALL_IMPORTS]/$$TARGETPATH
-
-qmldir.files = $$fq_qml_files
-qmldir.path = $$[QT_INSTALL_IMPORTS]/$$TARGETPATH
-
-INSTALLS += target qmldir
+INSTALLS += target
 
 # Some final setup
 
@@ -68,3 +43,5 @@ load(qt_targets)
     qmltypes.depends = $$QMAKE_RESOLVED_TARGET
     QMAKE_EXTRA_TARGETS += qmltypes
 }
+
+load(qml_module)