meson: add driver_remote build option

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Neal Gompa <ngompa13@gmail.com>
This commit is contained in:
Pavel Hrdina 2020-07-29 14:22:35 +02:00
parent 88ab32a4e5
commit 1ac1dce4d0
4 changed files with 19 additions and 51 deletions

View File

@ -130,7 +130,6 @@ LIBVIRT_DRIVER_ARG_BHYVE
LIBVIRT_DRIVER_ARG_ESX LIBVIRT_DRIVER_ARG_ESX
LIBVIRT_DRIVER_ARG_HYPERV LIBVIRT_DRIVER_ARG_HYPERV
LIBVIRT_DRIVER_ARG_TEST LIBVIRT_DRIVER_ARG_TEST
LIBVIRT_DRIVER_ARG_REMOTE
LIBVIRT_DRIVER_ARG_LIBVIRTD LIBVIRT_DRIVER_ARG_LIBVIRTD
LIBVIRT_DRIVER_ARG_NETWORK LIBVIRT_DRIVER_ARG_NETWORK
LIBVIRT_DRIVER_ARG_INTERFACE LIBVIRT_DRIVER_ARG_INTERFACE
@ -146,7 +145,6 @@ LIBVIRT_DRIVER_CHECK_BHYVE
LIBVIRT_DRIVER_CHECK_ESX LIBVIRT_DRIVER_CHECK_ESX
LIBVIRT_DRIVER_CHECK_HYPERV LIBVIRT_DRIVER_CHECK_HYPERV
LIBVIRT_DRIVER_CHECK_TEST LIBVIRT_DRIVER_CHECK_TEST
LIBVIRT_DRIVER_CHECK_REMOTE
LIBVIRT_DRIVER_CHECK_LIBVIRTD LIBVIRT_DRIVER_CHECK_LIBVIRTD
LIBVIRT_DRIVER_CHECK_NETWORK LIBVIRT_DRIVER_CHECK_NETWORK
LIBVIRT_DRIVER_CHECK_INTERFACE LIBVIRT_DRIVER_CHECK_INTERFACE
@ -352,7 +350,6 @@ LIBVIRT_DRIVER_RESULT_HYPERV
LIBVIRT_DRIVER_RESULT_VZ LIBVIRT_DRIVER_RESULT_VZ
LIBVIRT_DRIVER_RESULT_BHYVE LIBVIRT_DRIVER_RESULT_BHYVE
LIBVIRT_DRIVER_RESULT_TEST LIBVIRT_DRIVER_RESULT_TEST
LIBVIRT_DRIVER_RESULT_REMOTE
LIBVIRT_DRIVER_RESULT_NETWORK LIBVIRT_DRIVER_RESULT_NETWORK
LIBVIRT_DRIVER_RESULT_LIBVIRTD LIBVIRT_DRIVER_RESULT_LIBVIRTD
LIBVIRT_DRIVER_RESULT_INTERFACE LIBVIRT_DRIVER_RESULT_INTERFACE

View File

@ -1,48 +0,0 @@
dnl The remote driver
dnl
dnl Copyright (C) 2016 Red Hat, Inc.
dnl
dnl This library is free software; you can redistribute it and/or
dnl modify it under the terms of the GNU Lesser General Public
dnl License as published by the Free Software Foundation; either
dnl version 2.1 of the License, or (at your option) any later version.
dnl
dnl This library is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dnl Lesser General Public License for more details.
dnl
dnl You should have received a copy of the GNU Lesser General Public
dnl License along with this library. If not, see
dnl <http://www.gnu.org/licenses/>.
dnl
AC_DEFUN([LIBVIRT_DRIVER_ARG_REMOTE], [
LIBVIRT_ARG_WITH_FEATURE([REMOTE], [remote driver], [yes])
LIBVIRT_ARG_WITH([REMOTE_DEFAULT_MODE], [remote driver default mode], [legacy])
])
AC_DEFUN([LIBVIRT_DRIVER_CHECK_REMOTE], [
if test "$with_remote" = "yes" ; then
AC_DEFINE_UNQUOTED([WITH_REMOTE], 1, [whether Remote driver is enabled])
fi
AM_CONDITIONAL([WITH_REMOTE], [test "$with_remote" = "yes"])
case "$with_remote_default_mode" in
legacy)
REMOTE_DRIVER_MODE_DEFAULT=REMOTE_DRIVER_MODE_LEGACY
;;
direct)
REMOTE_DRIVER_MODE_DEFAULT=REMOTE_DRIVER_MODE_DIRECT
;;
*)
AC_MSG_ERROR([Unknown remote mode '$with_remote_default_mode'])
;;
esac
AC_DEFINE_UNQUOTED([REMOTE_DRIVER_MODE_DEFAULT],[$REMOTE_DRIVER_MODE_DEFAULT], [Default remote driver mode])
])
AC_DEFUN([LIBVIRT_DRIVER_RESULT_REMOTE], [
LIBVIRT_RESULT([Remote], [$with_remote])
])

View File

@ -1555,6 +1555,19 @@ if conf.has('WITH_VIRTUALPORT') and not conf.has('WITH_MACVTAP')
endif endif
# build driver options
if get_option('driver_remote').enabled()
if not xdr_dep.found() and host_machine.system() not in [ 'freebsd', 'darwin' ]
error('XDR is required for remote driver')
endif
conf.set('WITH_REMOTE', 1)
endif
remote_default_mode = get_option('remote_default_mode').to_upper()
conf.set('REMOTE_DRIVER_MODE_DEFAULT', 'REMOTE_DRIVER_MODE_@0@'.format(remote_default_mode))
# define top include directory # define top include directory
top_inc_dir = include_directories('.') top_inc_dir = include_directories('.')
@ -1573,6 +1586,11 @@ configure_file(output: 'meson-config.h', configuration: conf)
# print configuration summary # print configuration summary
driver_summary = {
'Remote': conf.has('WITH_REMOTE'),
}
summary(driver_summary, section: 'Drivers', bool_yn: true)
libs_summary = { libs_summary = {
'acl': acl_dep.found(), 'acl': acl_dep.found(),
'apparmor': apparmor_dep.found(), 'apparmor': apparmor_dep.found(),

View File

@ -49,3 +49,4 @@ option('yajl', type: 'feature', value: 'auto', description: 'yajl support')
# build driver options # build driver options
option('driver_remote', type: 'feature', value: 'enabled', description: 'remote driver') option('driver_remote', type: 'feature', value: 'enabled', description: 'remote driver')
option('remote_default_mode', type: 'combo', choices: ['legacy', 'direct'], value: 'legacy', description: 'remote driver default mode')