summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/win32/dumpcpp.prf
blob: 589d700e4e0dafd53722f943f7402ab274775b65 (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
qtPrepareTool(QMAKE_DUMPCPP, dumpcpp)

dumpcpp_decl.depends += $$QMAKE_DUMPCPP_EXE
dumpcpp_decl.commands = $$QMAKE_DUMPCPP ${QMAKE_FILE_IN} -o ${QMAKE_FILE_BASE}
qaxcontainer_compat: dumpcpp_decl.commands += -compat
dumpcpp_decl.output = ${QMAKE_FILE_BASE}.h
dumpcpp_decl.input = TYPELIBS
dumpcpp_decl.variable_out = HEADERS
dumpcpp_decl.name = DUMP
dumpcpp_decl.CONFIG += no_link

QMAKE_EXTRA_COMPILERS += dumpcpp_decl


dumpcpp_impl.commands = $$escape_expand(\\n)    # dummy command
dumpcpp_impl.output = ${QMAKE_FILE_BASE}.cpp
dumpcpp_impl.input = TYPELIBS
dumpcpp_impl.variable_out = SOURCES
dumpcpp_impl.name = CPP
dumpcpp_impl.depends += ${QMAKE_FILE_BASE}.h

QMAKE_EXTRA_COMPILERS += dumpcpp_impl


# Call dumpcpp the first time if the files do not exist to help find dependencies
!build_pass:have_target:!contains(TEMPLATE, vc.*) {
    for(tlb, TYPELIBS) {
        tlbCopy = $$replace(tlb, \", )
        hdr = $$basename(tlbCopy)
        hdr = $$section(hdr, ., 0, -2)
        tmp_command = $$QMAKE_DUMPCPP $$system_quote($$absolute_path($$tlbCopy, $$_PRO_FILE_PWD_)) \
                        -o $$system_quote($$OUT_PWD/$$hdr)
        qaxcontainer_compat: tmp_command += -compat
        !exists($$OUT_PWD/$${hdr}.h): system($$tmp_command)
    }
}