1# Detect repc when QtRO is installed into non-Qt prefix
2cmd = $${QT.remoteobjects.bins}/repc
3contains(QMAKE_HOST.os, Windows) {
4    cmd = $$system_path($${cmd}.exe)
5}
6exists($$cmd): QT_TOOL.repc.binary = $$cmd
7
8# qtPrepareTool honors QT_TOOL.repc.binary if set
9qtPrepareTool(QMAKE_REPC, repc)
10
11REPC_INCLUDEPATHES = $$QT.remoteobjects.includes
12for (path, REPC_INCLUDEPATHES) {
13    REPC_INCLUDEPATH += -I $$path
14}
15
16isEmpty(QMAKE_MOD_REPC):QMAKE_MOD_REPC = rep_
17
18repc_TYPE = $$upper($$repc_type)
19
20load(moc)
21
22groups =
23for(entry, REPC_$$repc_TYPE) {
24    files = $$eval($${entry}.files)
25    isEmpty(files) {
26        files = $$entry
27        group = repc_$${repc_type}
28    } else {
29        group = $${entry}_repc_$${repc_type}
30    }
31    groups *= $$group
32
33    input_list = $$upper($$group)_LIST
34    for(subent, $$list($$unique(files))) {
35        $$input_list += $$subent
36
37        # Add directory of *.rep file to include path
38        file_path = $$_PRO_FILE_PWD_/$$subent
39        INCLUDEPATH *= $$dirname(file_path)
40    }
41}
42
43for(group, groups) {
44    GROUP = $$upper($$group)
45    input_list = $${GROUP}_LIST
46
47    $${group}_header.output  = $$QMAKE_MOD_REPC${QMAKE_FILE_BASE}_$${repc_type}.h
48    $${group}_header.commands = $$QMAKE_REPC $$repc_option $$REPC_INCLUDEPATH ${QMAKE_FILE_NAME} ${QMAKE_FILE_OUT}
49    $${group}_header.depends = ${QMAKE_FILE_NAME} $$QT_TOOL.repc.binary
50    $${group}_header.variable_out = $${GROUP}_HEADERS
51    $${group}_header.input = $$input_list
52
53    $${group}_moc.commands = $$moc_header.commands $$REPC_INCLUDEPATH
54    $${group}_moc.output = $$moc_header.output
55    $${group}_moc.input = $${GROUP}_HEADERS
56    $${group}_moc.variable_out = GENERATED_SOURCES
57    !contains(TEMPLATE, vc.*): \
58        $${group}_moc.name = $$moc_header.name
59
60    QMAKE_EXTRA_COMPILERS += $${group}_header $${group}_moc
61}
62