summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/repccommon.pri
blob: fd321e3e447cad1ee7a09bbf854790632c5e1970 (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
61
# Detect repc when QtRO is installed into non-Qt prefix
cmd = $${QT.remoteobjects.bins}/repc
contains(QMAKE_HOST.os, Windows) {
    cmd = $$system_path($${cmd}.exe)
}
exists($$cmd): QT_TOOL.repc.binary = $$cmd

# qtPrepareTool honors QT_TOOL.repc.binary if set
qtPrepareTool(QMAKE_REPC, repc)

REPC_INCLUDEPATHES = $$QT.remoteobjects.includes
for (path, REPC_INCLUDEPATHES) {
    REPC_INCLUDEPATH += -I $$path
}

isEmpty(QMAKE_MOD_REPC):QMAKE_MOD_REPC = rep_

repc_TYPE = $$upper($$repc_type)

load(moc)

groups =
for(entry, REPC_$$repc_TYPE) {
    files = $$eval($${entry}.files)
    isEmpty(files) {
        files = $$entry
        group = repc_$${repc_type}
    } else {
        group = $${entry}_repc_$${repc_type}
    }
    groups *= $$group

    input_list = $$upper($$group)_LIST
    for(subent, $$list($$unique(files))) {
        $$input_list += $$subent

        # Add directory of *.rep file to include path
        file_path = $$_PRO_FILE_PWD_/$$subent
        INCLUDEPATH *= $$dirname(file_path)
    }
}

for(group, groups) {
    GROUP = $$upper($$group)
    input_list = $${GROUP}_LIST

    $${group}_header.output  = $$QMAKE_MOD_REPC${QMAKE_FILE_BASE}_$${repc_type}.h
    $${group}_header.commands = $$QMAKE_REPC $$repc_option $$REPC_INCLUDEPATH ${QMAKE_FILE_NAME} ${QMAKE_FILE_OUT}
    $${group}_header.depends = ${QMAKE_FILE_NAME} $$QT_TOOL.repc.binary
    $${group}_header.variable_out = $${GROUP}_HEADERS
    $${group}_header.input = $$input_list

    $${group}_moc.commands = $$moc_header.commands $$REPC_INCLUDEPATH
    $${group}_moc.output = $$moc_header.output
    $${group}_moc.input = $${GROUP}_HEADERS
    $${group}_moc.variable_out = GENERATED_SOURCES
    !contains(TEMPLATE, vc.*): \
        $${group}_moc.name = $$moc_header.name

    QMAKE_EXTRA_COMPILERS += $${group}_header $${group}_moc
}