libvirt/src/admin/meson.build
Michal Privoznik de617ce96b admin: Build only when RPC is available
The admin module is very closely tied to RPC. If we are
building without RPC support there's not much use for the
admin module, in fact it fails to build.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2021-12-15 12:12:44 +01:00

123 lines
2.6 KiB
Meson

admin_driver_sources = [
'admin_server.c',
'admin_server_dispatch.c',
]
admin_driver_protocol = files('admin_protocol.x')
rpc_probe_files += admin_driver_protocol
admin_driver_generated = []
admin_protocol_h = custom_target(
'admin_protocol.h',
input: admin_driver_protocol,
output: 'admin_protocol.h',
command: [
genprotocol_prog, rpcgen_prog, '-h', '@INPUT@', '@OUTPUT@',
],
)
admin_driver_generated += admin_protocol_h
admin_driver_generated += custom_target(
'admin_protocol.c',
input: admin_driver_protocol,
output: 'admin_protocol.c',
command: [
genprotocol_prog, rpcgen_prog, '-c', '@INPUT@', '@OUTPUT@',
],
)
admin_driver_generated += custom_target(
'admin_server_dispatch_stubs.h',
input: admin_driver_protocol,
output: 'admin_server_dispatch_stubs.h',
command: [
gendispatch_prog, '--mode=server', 'admin', 'ADMIN', '@INPUT@',
],
capture: true,
)
admin_sources = files(
'libvirt-admin.c',
)
admin_client_generated = custom_target(
'admin_client.h',
input: admin_driver_protocol,
output: 'admin_client.h',
command: [
gendispatch_prog, '--mode=client', 'admin', 'ADMIN', '@INPUT@',
],
capture: true,
)
libvirt_admin_public_syms = files(
'libvirt_admin_public.syms',
)
libvirt_admin_private_syms = files(
'libvirt_admin_private.syms',
)
libvirt_admin_syms = custom_target(
'libvirt_admin.syms',
input: [
libvirt_admin_public_syms,
libvirt_admin_private_syms,
],
output: 'libvirt_admin.syms',
command: [
meson_python_prog, python3_prog, meson_gen_sym_prog,
'@OUTPUT@', 'LIBVIRT_ADMIN_PRIVATE_' + meson.project_version(), '@INPUT@',
],
)
libvirt_admin_syms_file = libvirt_admin_syms
if host_machine.system() == 'windows'
libvirt_admin_def = custom_target(
'libvirt_admin.def',
input: libvirt_admin_syms,
output: 'libvirt_admin.def',
command: [
meson_python_prog, python3_prog, meson_gen_def_prog,
'@INPUT@', '@OUTPUT@',
],
)
libvirt_admin_syms_file = libvirt_admin_def
endif
libvirt_admin_syms_flags = '@0@@1@'.format(
version_script_flags,
libvirt_admin_syms_file.full_path(),
)
if conf.has('WITH_REMOTE')
admin_driver_lib = static_library(
'virt_admin_driver',
[
admin_driver_sources,
admin_driver_generated,
],
dependencies: [
rpc_dep,
sasl_dep,
src_dep,
xdr_dep,
],
)
check_protocols += {
'name': 'admin_protocol',
'lib': admin_driver_lib,
}
endif
virt_conf_files += files('libvirt-admin.conf')
admin_inc_dir = include_directories('.')
admin_dep = declare_dependency(
include_directories: admin_inc_dir,
sources: [ admin_protocol_h ],
)