summaryrefslogtreecommitdiff
path: root/src/logging/meson.build
blob: fa6af50fa667410b99d75581ac1150d2fbbd92f7 (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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
log_driver_sources = [
  'log_manager.c',
]

log_protocol = 'log_protocol.x'

log_protocol_generated = []

log_protocol_header_generated = custom_target(
  'log_protocol.h',
  input: log_protocol,
  output: 'log_protocol.h',
  command: [
    genprotocol_prog, rpcgen_prog, '-h', '@INPUT@', '@OUTPUT@'
  ],
)
log_protocol_generated += log_protocol_header_generated

log_protocol_generated += custom_target(
  'log_protocol.c',
  input: log_protocol,
  output: 'log_protocol.c',
  command: [
    genprotocol_prog, rpcgen_prog, '-c', '@INPUT@', '@OUTPUT@'
  ],
)

log_daemon_sources = files(
  'log_daemon.c',
  'log_daemon_config.c',
  'log_daemon_dispatch.c',
  'log_handler.c',
  'log_cleaner.c',
)

if conf.has('WITH_REMOTE')
  log_driver_lib = static_library(
    'virt_log_driver',
    [
      log_driver_sources,
      log_protocol_generated,
    ],
    dependencies: [
      rpc_dep,
      src_dep,
      xdr_dep,
    ],
  )

  libvirt_libs += log_driver_lib
  used_sym_files += 'libvirt_logging.syms'
else
  sym_files += 'libvirt_logging.syms'
endif

if conf.has('WITH_LIBVIRTD')
  log_daemon_generated = custom_target(
    'log_daemon_dispatch_stubs.h',
    input: log_protocol,
    output: 'log_daemon_dispatch_stubs.h',
    command: [
      gendispatch_prog, '--mode=server',
      'virLogManagerProtocol', 'VIR_LOG_MANAGER_PROTOCOL', '@INPUT@',
    ],
    capture: true,
  )

  virt_daemons += {
    'name': 'virtlogd',
    'sources': [
      log_daemon_sources,
      log_daemon_generated,
      log_protocol_generated,
    ],
    'include': [
      include_directories('.'),
    ],
  }

  virt_conf_files += files('virtlogd.conf')
  virt_aug_files += files('virtlogd.aug')
  virt_test_aug_files += {
    'name': 'test_virtlogd.aug',
    'aug': files('test_virtlogd.aug.in'),
    'conf': files('virtlogd.conf'),
    'test_name': 'virtlogd',
    'test_srcdir': meson.current_source_dir(),
    'test_builddir': meson.current_build_dir(),
  }

  virt_daemon_units += {
    'service': 'virtlogd',
    'service_in': files('virtlogd.service.in'),
    'name': '',
    'sockprefix': '',
    'sockets': [ 'main', 'admin' ],
    'socket_in': files('virtlogd.socket.in'),
    'socket_admin_in': files('virtlogd-admin.socket.in'),
  }

  openrc_init_files += {
    'name': 'virtlogd',
    'in_file': files('virtlogd.init.in'),
  }
endif

log_inc_dir = include_directories('.')

log_dep = declare_dependency(
  include_directories: log_inc_dir,
  sources: log_protocol_header_generated,
)