qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v4 08/13] meson: add module_trace & module_trace_src


From: Gerd Hoffmann
Subject: [PATCH v4 08/13] meson: add module_trace & module_trace_src
Date: Tue, 1 Jun 2021 15:24:09 +0200

module_trace is a dict which keeps track of the trace source files for a
module.

module_trace_src collects the trace source files for a given trace-events file,
which then either added to the source set or to a new module_trace dict
depending on whenever they are for a module or core qemu.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 meson.build       |  5 ++++-
 trace/meson.build | 17 ++++++++++++-----
 2 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/meson.build b/meson.build
index b1f2e7920977..0e1c2f995d79 100644
--- a/meson.build
+++ b/meson.build
@@ -1763,6 +1763,7 @@ user_ss = ss.source_set()
 util_ss = ss.source_set()
 
 modules = {}
+module_trace = {}
 hw_arch = {}
 target_arch = {}
 target_softmmu_arch = {}
@@ -2017,7 +2018,9 @@ foreach d, list : modules
   foreach m, module_ss : list
     if enable_modules and targetos != 'windows'
       module_ss = module_ss.apply(config_all, strict: false)
-      sl = static_library(d + '-' + m, [genh, module_ss.sources()],
+      module_trace_cfg = module_trace.get(d + '-' + m, {})
+      module_trace_src = module_trace_cfg.get('src', [])
+      sl = static_library(d + '-' + m, [genh, module_ss.sources(), 
module_trace_src],
                           dependencies: [modulecommon, 
module_ss.dependencies()], pic: true)
       if d == 'block'
         block_mods += sl
diff --git a/trace/meson.build b/trace/meson.build
index bc946495a714..834ebaa7cc5f 100644
--- a/trace/meson.build
+++ b/trace/meson.build
@@ -17,9 +17,11 @@ endforeach
 foreach c : trace_events_config
   trace_events_file = c.get('file')
   trace_events_files += [ trace_events_file ]
-  group_name = c.get('group')
+  module_name = c.get('module', '')
+  group_name = c.get('group', module_name.underscorify())
   group = '--group=' + group_name
   fmt = '@0@-' + group_name + '.@1@'
+  module_trace_src = []
 
   trace_h = custom_target(fmt.format('trace', 'h'),
                           output: fmt.format('trace', 'h'),
@@ -38,10 +40,10 @@ foreach c : trace_events_config
                                 input: trace_events_file,
                                 command: [ tracetool, group, 
'--format=ust-events-h', '@INPUT@', '@OUTPUT@' ],
                                 depend_files: tracetool_depends)
-    trace_ss.add(trace_ust_h, lttng, urcubp)
+    module_trace_src += [ trace_ust_h, lttng, urcubp ]
     genh += trace_ust_h
   endif
-  trace_ss.add(trace_h, trace_c)
+  module_trace_src += [ trace_h, trace_c ]
   if 'CONFIG_TRACE_DTRACE' in config_host
     trace_dtrace = custom_target(fmt.format('trace-dtrace', 'dtrace'),
                                  output: fmt.format('trace-dtrace', 'dtrace'),
@@ -52,17 +54,22 @@ foreach c : trace_events_config
                                    output: fmt.format('trace-dtrace', 'h'),
                                    input: trace_dtrace,
                                    command: [ 'dtrace', '-DSTAP_SDT_V2', '-o', 
'@OUTPUT@', '-h', '-s', '@INPUT@' ])
-    trace_ss.add(trace_dtrace_h)
+    module_trace_src += trace_dtrace_h
     if host_machine.system() != 'darwin'
       trace_dtrace_o = custom_target(fmt.format('trace-dtrace', 'o'),
                                      output: fmt.format('trace-dtrace', 'o'),
                                      input: trace_dtrace,
                                      command: [ 'dtrace', '-DSTAP_SDT_V2', 
'-o', '@OUTPUT@', '-G', '-s', '@INPUT@' ])
-      trace_ss.add(trace_dtrace_o)
+      module_trace_src += trace_dtrace_o
     endif
 
     genh += trace_dtrace_h
   endif
+  if enable_modules and module_name != ''
+    module_trace += { module_name : { 'src' : module_trace_src } }
+  else
+    trace_ss.add(module_trace_src)
+  endif
 endforeach
 
 trace_events_all = custom_target('trace-events-all',
-- 
2.31.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]