summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/dbuscommon.pri
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>2012-08-02 19:15:45 +0200
committerQt by Nokia <qt-info@nokia.com>2012-08-04 00:52:38 +0200
commitff0a759f8d70322d348e0d918248e56dae2e40d3 (patch)
tree1ae68fcd067a211904ea2335da94e7b5f4e10dea /mkspecs/features/dbuscommon.pri
parent55662549485be9b47984d4a54e730f531fb01f4a (diff)
de-duplicate dbusadaptors.prf vs. dbusinterfaces.prf
it's two times the same code, once with "adaptor" (and an -a option) and once with "interface" (and a -p option). the de-duplicated code looks a bit nasty, as qmake cannot deal with braces on the LHS yet. Change-Id: I199a07947661ab9abe7a736b56c437f3f6dc4fa4 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
Diffstat (limited to 'mkspecs/features/dbuscommon.pri')
-rw-r--r--mkspecs/features/dbuscommon.pri57
1 files changed, 57 insertions, 0 deletions
diff --git a/mkspecs/features/dbuscommon.pri b/mkspecs/features/dbuscommon.pri
new file mode 100644
index 0000000000..b2c62306aa
--- /dev/null
+++ b/mkspecs/features/dbuscommon.pri
@@ -0,0 +1,57 @@
+load(moc)
+qtPrepareTool(QMAKE_QDBUSXML2CPP, qdbusxml2cpp)
+
+defineReplace(qdbusOutputBasename) {
+ return($$lower($$section($$list($$basename(1)),.,-2,-2)))
+}
+
+dbus_TYPE = $$upper($$dbus_type)
+group = dbus_$${dbus_type}
+GROUP = DBUS_$${dbus_TYPE}
+input_list = $${GROUP}_LIST
+
+for(entry, $$list($$unique($${GROUP}S))) {
+
+ !contains(entry, .*\\w\\.xml$) {
+ warning("Invalid D-BUS $${dbus_type}: '$$entry', please use 'com.mydomain.myinterface.xml' instead.")
+ next()
+ }
+
+ $$input_list += $$entry
+}
+
+# funny indent to avoid re-indentation in next commit
+ dthc = $${group}_header.commands
+ $$dthc = $$QMAKE_QDBUSXML2CPP $$qdbusxml2cpp_option ${QMAKE_FILE_OUT}: ${QMAKE_FILE_IN}
+ dtho = $${group}_header.output
+ $$dtho = ${QMAKE_FUNC_FILE_IN_qdbusOutputBasename}_$${dbus_type}.h
+ dthn = $${group}_header.name
+ $$dthn = DBUSXML2CPP $${dbus_TYPE} HEADER ${QMAKE_FILE_IN}
+ dthvo = $${group}_header.variable_out
+ $$dthvo = $${GROUP}_HEADERS
+ dthi = $${group}_header.input
+ $$dthi = $$input_list
+
+ dtsc = $${group}_source.commands
+ $$dtsc = $$QMAKE_QDBUSXML2CPP -i ${QMAKE_FILE_OUT_BASE}.h $$qdbusxml2cpp_option :${QMAKE_FILE_OUT} ${QMAKE_FILE_IN}
+ dtso = $${group}_source.output
+ $$dtso = ${QMAKE_FUNC_FILE_IN_qdbusOutputBasename}_$${dbus_type}.cpp
+ dtsn = $${group}_source.name
+ $$dtsn = DBUSXML2CPP $${dbus_TYPE} SOURCE ${QMAKE_FILE_IN}
+ dtsvo = $${group}_source.variable_out
+ $$dtsvo = SOURCES
+ dtsi = $${group}_source.input
+ $$dtsi = $$input_list
+
+ dtmc = $${group}_moc.commands
+ $$dtmc = $$moc_header.commands
+ dtmo = $${group}_moc.output
+ $$dtmo = $$moc_header.output
+ dtmi = $${group}_moc.input
+ $$dtmi = $${GROUP}_HEADERS
+ dtmvo = $${group}_moc.variable_out
+ $$dtmvo = GENERATED_SOURCES
+ dtmn = $${group}_moc.name
+ $$dtmn = $$moc_header.name
+
+ QMAKE_EXTRA_COMPILERS += $${group}_header $${group}_source $${group}_moc