libvirt/src/remote/meson.build

200 lines
4.6 KiB
Meson
Raw Normal View History

remote_driver_sources = [
'remote_driver.c',
]
remote_driver_generated = []
foreach name : [ 'remote', 'qemu', 'lxc' ]
client_bodies_h = '@0@_client_bodies.h'.format(name)
protocol_c = '@0@_protocol.c'.format(name)
protocol_h = '@0@_protocol.h'.format(name)
protocol_x = '@0@_protocol.x'.format(name)
remote_driver_generated += custom_target(
client_bodies_h,
input: protocol_x,
output: client_bodies_h,
command: [
gendispatch_prog, '--mode=client', name, name.to_upper(), '@INPUT@',
],
capture: true,
)
remote_driver_generated += custom_target(
protocol_h,
input: protocol_x,
output: protocol_h,
command: [
genprotocol_prog, rpcgen_prog, '-h', '@INPUT@', '@OUTPUT@',
],
)
remote_driver_generated += custom_target(
protocol_c,
input: protocol_x,
output: protocol_c,
command: [
genprotocol_prog, rpcgen_prog, '-c', '@INPUT@', '@OUTPUT@',
],
)
endforeach
remote_daemon_sources = files(
'remote_daemon.c',
'remote_daemon_config.c',
'remote_daemon_dispatch.c',
'remote_daemon_stream.c',
)
remote_daemon_generated = []
foreach name : [ 'remote', 'qemu', 'lxc' ]
protocol_x = '@0@_protocol.x'.format(name)
dispatch_h = '@0@_daemon_dispatch_stubs.h'.format(name)
remote_daemon_generated += custom_target(
dispatch_h,
input: protocol_x,
output: dispatch_h,
command: [
gendispatch_prog, '--mode=server', name, name.to_upper(), '@INPUT@',
],
capture: true,
)
endforeach
# libvirt_conf_files:
# Generate libvirtd and virtd template files that are used to generate
# daemon configuration files.
# Each entry is a dictionary with following items:
# * input: source config file (required)
# * libvirtd: libvirtd config output template file (required)
# * virtd: virtd config output template file (required)
libvirt_conf_files = [
{
'input':'libvirtd.conf.in',
'libvirtd':'libvirtd.conf.tmp',
'virtd':'virtd.conf.tmp',
},
{
'input':'libvirtd.aug.in',
'libvirtd':'libvirtd.aug.tmp',
'virtd':'virtd.aug.tmp',
},
{
'input':'test_libvirtd.aug.in',
'libvirtd':'test_libvirtd.aug.tmp',
'virtd':'test_virtd.aug.tmp',
},
]
foreach name : libvirt_conf_files
tmp = configure_file(
input: name['input'],
output: name['libvirtd'],
command: [ 'sed', '-e', '/[@]CUT_ENABLE_IP[@]/d', '-e', '/[@]END[@]/d', '@INPUT@' ],
capture: true,
)
set_variable(name['libvirtd'].underscorify(), tmp)
endforeach
foreach name : libvirt_conf_files
tmp = configure_file(
input: name['input'],
output: name['virtd'],
command: [ 'sed', '-e', '/[@]CUT_ENABLE_IP[@]/,/[@]END[@]/d', '@INPUT@' ],
capture: true,
)
set_variable(name['virtd'].underscorify(), tmp)
endforeach
libvirtd_socket_unit_files = [
'libvirtd.socket',
'libvirtd-ro.socket',
'libvirtd-admin.socket',
'libvirtd-tcp.socket',
'libvirtd-tls.socket',
]
libvirtd_socket_conflicts = ' '.join(libvirtd_socket_unit_files)
if conf.has('WITH_REMOTE')
remote_driver_lib = static_library(
'virt_remote_driver',
[
remote_driver_sources,
remote_driver_generated,
],
dependencies: [
rpc_dep,
sasl_dep,
src_dep,
xdr_dep,
],
include_directories: [
conf_inc_dir,
],
)
libvirt_libs += remote_driver_lib
if conf.has('WITH_LIBVIRTD')
guest_unit_files += files('virt-guest-shutdown.target')
virt_daemons += {
'name': 'libvirtd',
'c_args': [
'-DSOCK_PREFIX="libvirt"',
'-DDAEMON_NAME="libvirtd"',
'-DWITH_IP',
'-DLIBVIRTD',
],
}
virt_daemon_confs += {
'name': 'libvirtd',
'with_ip': true,
}
virt_daemon_units += {
'service': 'libvirtd',
'service_in': files('libvirtd.service.in'),
'name': 'Libvirt',
'sockprefix': 'libvirtd',
'sockets': [ 'main', 'ro', 'admin', 'tcp', 'tls' ],
}
virt_daemons += {
'name': 'virtproxyd',
'c_args': [
'-DSOCK_PREFIX="libvirt"',
'-DDAEMON_NAME="virtproxyd"',
'-DWITH_IP',
'-DVIRTPROXYD',
],
}
virt_daemon_confs += {
'name': 'virtproxyd',
'with_ip': true,
}
virt_daemon_units += {
'service': 'virtproxyd',
'service_in': files('virtproxyd.service.in'),
'name': 'Libvirt proxy',
'sockprefix': 'libvirtd',
'sockets': [ 'main', 'ro', 'admin', 'tcp', 'tls' ],
'deps': libvirtd_socket_conflicts,
}
endif
endif
if conf.has('WITH_REMOTE')
used_sym_files += 'libvirt_remote.syms'
else
sym_files += 'libvirt_remote.syms'
endif
remote_inc_dir = include_directories('.')