summaryrefslogtreecommitdiffstats
path: root/mkspecs
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>2012-08-02 21:37:18 +0200
committerQt by Nokia <qt-info@nokia.com>2012-08-04 00:52:46 +0200
commit95d3380d229b479837296a3790e947c698350b40 (patch)
tree2e7d00312bed868fa4984b9d09979a0a77497440 /mkspecs
parent911516e1d3045a0c10f46a5a64abf6ce26d374b3 (diff)
introduce ability to selectively pass options to qdbusxml2cpp
DBUS_{INTERFACES,ADAPTORS} now also accepts "structures": DBUS_INTERFACES += foo foo.files = foo.xml bar.xml foo.header_flags = -i qfoobar.h foo.source_flags = .. Change-Id: I98d757c8d3a3c6f79cedca7b90b533289114c102 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
Diffstat (limited to 'mkspecs')
-rw-r--r--mkspecs/features/dbuscommon.pri40
1 files changed, 31 insertions, 9 deletions
diff --git a/mkspecs/features/dbuscommon.pri b/mkspecs/features/dbuscommon.pri
index 2f7ae8e81d..1e02225fd3 100644
--- a/mkspecs/features/dbuscommon.pri
+++ b/mkspecs/features/dbuscommon.pri
@@ -6,23 +6,44 @@ defineReplace(qdbusOutputBasename) {
}
dbus_TYPE = $$upper($$dbus_type)
-group = dbus_$${dbus_type}
-GROUP = DBUS_$${dbus_TYPE}
-input_list = $${GROUP}_LIST
-for(entry, $$list($$unique($${GROUP}S))) {
+groups =
+for(entry, DBUS_$${dbus_TYPE}S) {
- !contains(entry, .*\\w\\.xml$) {
- warning("Invalid D-BUS $${dbus_type}: '$$entry', please use 'com.mydomain.myinterface.xml' instead.")
- next()
+ files = $$eval($${entry}.files)
+ isEmpty(files) {
+ files = $$entry
+ group = dbus_$${dbus_type}
+ } else {
+ group = $${entry}_dbus_$${dbus_type}
}
+ groups *= $$group
- $$input_list += $$entry
+ input_list = $$upper($$group)_LIST
+ for(subent, $$list($$unique(files))) {
+
+ !contains(subent, .*\\w\\.xml$) {
+ warning("Invalid D-BUS $${dbus_type}: '$$subent', please use 'com.mydomain.myinterface.xml' instead.")
+ next()
+ }
+
+ $$input_list += $$subent
+ }
}
-# funny indent to avoid re-indentation in next commit
+for(group, groups) {
+ GROUP = $$upper($$group)
+ input_list = $${GROUP}_LIST
+
+ # qmake does not keep empty elements in lists, so we reverse-engineer the short name
+ grp = $$replace(group, _?dbus_$${dbus_type}\$, )
+ isEmpty(grp) {
hdr_flags = $$eval(QDBUSXML2CPP_$${dbus_TYPE}_HEADER_FLAGS)
src_flags = $$eval(QDBUSXML2CPP_$${dbus_TYPE}_SOURCE_FLAGS)
+ } else {
+ hdr_flags = $$eval($${grp}.header_flags)
+ src_flags = $$eval($${grp}.source_flags)
+ }
dthc = $${group}_header.commands
$$dthc = $$QMAKE_QDBUSXML2CPP $$hdr_flags $$qdbusxml2cpp_option ${QMAKE_FILE_OUT}: ${QMAKE_FILE_IN}
@@ -58,3 +79,4 @@ for(entry, $$list($$unique($${GROUP}S))) {
$$dtmn = $$moc_header.name
QMAKE_EXTRA_COMPILERS += $${group}_header $${group}_source $${group}_moc
+}