summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/qt_tracepoints.prf
blob: f115e9a11570e0aae8669d3529433fad1246b82f (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
#  W A R N I N G
#  -------------
#
# This file is not part of the Qt API.  It exists purely as an
# implementation detail.  It may change from version to version
# without notice, or even be removed.
#
# We mean it.
#

qtPrepareLibExecTool(QMAKE_TRACEGEN, tracegen)

isEmpty(TRACEGEN_DIR): TRACEGEN_DIR = .

PROVIDER_NAME = qt$$lower($$MODULE)
INCLUDEPATH += $$absolute_path($$TRACEGEN_DIR, $$OUT_PWD)
HEADER_PATH = $$OUT_PWD/$$TRACEGEN_DIR/$${PROVIDER_NAME}_tracepoints_p$${first(QMAKE_EXT_H)}

if(qtConfig(lttng)|qtConfig(etw)) {
    SOURCE_PATH = $$OUT_PWD/$$TRACEGEN_DIR/$${PROVIDER_NAME}_tracepoints$${first(QMAKE_EXT_CPP)}

    isEmpty(BUILDS)|build_pass {
        impl_file_contents = \
            "$${LITERAL_HASH}define TRACEPOINT_CREATE_PROBES" \
            "$${LITERAL_HASH}define TRACEPOINT_DEFINE" \
            "$${LITERAL_HASH}include \"$${HEADER_PATH}\""

        write_file($$SOURCE_PATH, impl_file_contents)|error()
    }

    GENERATED_SOURCES += $$SOURCE_PATH

    tracegen.input = TRACEPOINT_PROVIDER
    tracegen.output = $$HEADER_PATH
    tracegen.variable_out = HEADERS
    tracegen.depends += $$QMAKE_TRACEGEN_EXE
    tracegen.CONFIG = target_predeps

    qtConfig(lttng) {
        tracegen.commands = $$QMAKE_TRACEGEN lttng ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
        QMAKE_USE_PRIVATE += lttng-ust
    } else {
        tracegen.commands = $$QMAKE_TRACEGEN etw ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
    }

    QMAKE_EXTRA_COMPILERS += tracegen

    DEFINES += Q_TRACEPOINT
} else {
    isEmpty(BUILDS)|build_pass {
        header_file_contents = "$${LITERAL_HASH}include <private/qtrace_p.h>"
        write_file($$HEADER_PATH, header_file_contents)|error()
    }
}