From 842b1bd29ea8914a00620432d860433fe5374cad Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Mon, 6 Aug 2012 20:39:49 +0200 Subject: factor qml_module out of qml_plugin this makes it comfortable to create qml-only modules Change-Id: I17a5a3ee24210b93db05e50502c6ca91a4e7a9d8 Reviewed-by: Joerg Bornemann --- mkspecs/features/qml_module.prf | 28 ++++++++++++++++++++++++++++ mkspecs/features/qml_plugin.prf | 31 ++++--------------------------- 2 files changed, 32 insertions(+), 27 deletions(-) create mode 100644 mkspecs/features/qml_module.prf (limited to 'mkspecs') diff --git a/mkspecs/features/qml_module.prf b/mkspecs/features/qml_module.prf new file mode 100644 index 0000000000..cf62a86ce6 --- /dev/null +++ b/mkspecs/features/qml_module.prf @@ -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 diff --git a/mkspecs/features/qml_plugin.prf b/mkspecs/features/qml_plugin.prf index 94f96f69f1..5bbead4b97 100644 --- a/mkspecs/features/qml_plugin.prf +++ b/mkspecs/features/qml_plugin.prf @@ -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) -- cgit v1.2.3