summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/dbuscommon.pri
blob: 2f7ae8e81da2554c61776e2b4cd3018e2e9993a1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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
        hdr_flags = $$eval(QDBUSXML2CPP_$${dbus_TYPE}_HEADER_FLAGS)
        src_flags = $$eval(QDBUSXML2CPP_$${dbus_TYPE}_SOURCE_FLAGS)

    dthc = $${group}_header.commands
    $$dthc = $$QMAKE_QDBUSXML2CPP $$hdr_flags $$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 $$src_flags $$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