summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/qt_tracepoints.prf
diff options
context:
space:
mode:
Diffstat (limited to 'mkspecs/features/qt_tracepoints.prf')
-rw-r--r--mkspecs/features/qt_tracepoints.prf54
1 files changed, 54 insertions, 0 deletions
diff --git a/mkspecs/features/qt_tracepoints.prf b/mkspecs/features/qt_tracepoints.prf
new file mode 100644
index 0000000000..d1b45a47cb
--- /dev/null
+++ b/mkspecs/features/qt_tracepoints.prf
@@ -0,0 +1,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.
+#
+
+qtPrepareTool(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)}
+
+!force_bootstrap: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()
+ }
+}