From: Pavel Hrdina Date: Wed, 24 Jun 2020 11:28:43 +0000 (+0200) Subject: meson: src: add support for building daemon binaries X-Git-Tag: v6.7.0-rc1~406 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f0476d00f841cf499a0a8e7221c0395b2521061b;p=thirdparty%2Flibvirt.git meson: src: add support for building daemon binaries Signed-off-by: Pavel Hrdina Reviewed-by: Peter Krempa Reviewed-by: Neal Gompa --- diff --git a/src/admin/meson.build b/src/admin/meson.build index cad331f3f2..ab6912d410 100644 --- a/src/admin/meson.build +++ b/src/admin/meson.build @@ -7,7 +7,7 @@ admin_driver_protocol = files('admin_protocol.x') admin_driver_generated = [] -admin_driver_generated += custom_target( +admin_protocol_h = custom_target( 'admin_protocol.h', input: admin_driver_protocol, output: 'admin_protocol.h', @@ -15,6 +15,7 @@ admin_driver_generated += custom_target( genprotocol_prog, rpcgen_prog, '-h', '@INPUT@', '@OUTPUT@', ], ) +admin_driver_generated += admin_protocol_h admin_driver_generated += custom_target( 'admin_protocol.c', @@ -95,3 +96,8 @@ admin_driver_lib = static_library( ) admin_inc_dir = include_directories('.') + +admin_dep = declare_dependency( + include_directories: admin_inc_dir, + sources: [ admin_protocol_h ], +) diff --git a/src/meson.build b/src/meson.build index 77496addb8..24d454946d 100644 --- a/src/meson.build +++ b/src/meson.build @@ -140,6 +140,14 @@ libvirt_libs = [] # * install_dir - installation directory (optional, default libdir / 'libvirt' / 'connection-driver' virt_modules = [] +# virt_daemons: +# each entry is a dictionary with following items: +# * name - binary name (required) +# * sources - binary sources (optional, default remote_daemon_sources) +# * c_args - compile arguments (optional, default []) +# * include = include_directories (optional, default []) +virt_daemons = [] + # list subdirectories @@ -476,3 +484,47 @@ foreach module : virt_modules ) set_variable('@0@_module'.format(module['name'].underscorify()), mod) endforeach + + +# build libvirt daemons + +foreach daemon : virt_daemons + bin = executable( + daemon['name'], + [ + daemon.get('sources', [ remote_daemon_sources, remote_daemon_generated ]), + dtrace_gen_objects, + ], + c_args: [ + daemon.get('c_args', []), + ], + include_directories: [ + conf_inc_dir, + remote_inc_dir, + daemon.get('include', []), + ], + dependencies: [ + admin_dep, + access_dep, + dbus_dep, + gnutls_dep, + libnl_dep, + rpc_dep, + src_dep, + sasl_dep, + xdr_dep, + ], + link_with: [ + admin_driver_lib, + libvirt_lib, + libvirt_lxc_lib, + libvirt_qemu_lib, + ], + link_args: [ + libvirt_no_undefined, + ], + install: true, + install_dir: sbindir, + install_rpath: libdir, + ) +endforeach diff --git a/src/remote/Makefile.inc.am b/src/remote/Makefile.inc.am index 9866903847..eb281a4c4d 100644 --- a/src/remote/Makefile.inc.am +++ b/src/remote/Makefile.inc.am @@ -1,46 +1,5 @@ # vim: filetype=automake -REMOTE_DAEMON_CFLAGS = \ - $(AM_CFLAGS) \ - $(GNUTLS_CFLAGS) \ - $(SASL_CFLAGS) \ - $(XDR_CFLAGS) \ - $(DBUS_CFLAGS) \ - $(LIBNL_CFLAGS) \ - -I$(srcdir)/access \ - -I$(builddir)/access \ - -I$(srcdir)/conf \ - -I$(srcdir)/rpc \ - -I$(builddir)/rpc \ - -I$(builddir)/remote \ - $(NULL) - -REMOTE_DAEMON_LD_FLAGS = \ - $(AM_LDFLAGS) \ - $(NO_UNDEFINED_LDFLAGS) \ - $(NULL) - -REMOTE_DAEMON_LD_ADD = \ - libvirt_driver_admin.la \ - libvirt-lxc.la \ - libvirt-qemu.la \ - libvirt.la \ - $(LIBXML_LIBS) \ - $(GNUTLS_LIBS) \ - $(SASL_LIBS) \ - $(XDR_LIBS) \ - $(DBUS_LIBS) \ - $(LIBNL_LIBS) \ - $(NULL) - -if WITH_DTRACE_PROBES -REMOTE_DAEMON_LD_ADD += ../src/libvirt_probes.lo -endif WITH_DTRACE_PROBES - -REMOTE_DAEMON_LD_ADD += \ - $(GLIB_LIBS) \ - $(NULL) - LOGROTATE_FILES_IN += \ remote/libvirtd.qemu.logrotate.in \ remote/libvirtd.lxc.logrotate.in \