meson: add interface driver 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-04-28 22:52:30 +02:00
parent 67f8f99dc0
commit 89064c9e37
4 changed files with 8 additions and 63 deletions

View File

@ -92,16 +92,6 @@ LIBVIRT_CHECK_NWFILTER
LIBVIRT_CHECK_PM_UTILS
dnl
dnl Virtualization drivers check
dnl
LIBVIRT_DRIVER_ARG_INTERFACE
LIBVIRT_DRIVER_CHECK_INTERFACE
dnl
dnl in case someone want to build static binaries
dnl STATIC_BINARIES="-static"
@ -281,10 +271,6 @@ AC_MSG_NOTICE([])
AC_MSG_NOTICE([Configuration summary])
AC_MSG_NOTICE([=====================])
AC_MSG_NOTICE([])
AC_MSG_NOTICE([Drivers])
AC_MSG_NOTICE([])
LIBVIRT_DRIVER_RESULT_INTERFACE
AC_MSG_NOTICE([])
AC_MSG_NOTICE([Storage Drivers])
AC_MSG_NOTICE([])
LIBVIRT_STORAGE_RESULT_DIR

View File

@ -1,49 +0,0 @@
dnl The interface 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_INTERFACE], [
LIBVIRT_ARG_WITH_FEATURE([INTERFACE], [host interface driver], [check])
])
AC_DEFUN([LIBVIRT_DRIVER_CHECK_INTERFACE], [
AC_REQUIRE([LIBVIRT_DRIVER_CHECK_LIBVIRTD])
AC_REQUIRE([LIBVIRT_CHECK_NETCF])
AC_REQUIRE([LIBVIRT_CHECK_UDEV])
dnl Don't compile the interface driver without libvirtd
if test "$with_libvirtd" = "no" ; then
with_interface=no
fi
dnl The interface driver depends on the netcf library or udev library
case $with_interface:$with_netcf:$with_udev in
check:*yes*) with_interface=yes ;;
check:no:no) with_interface=no ;;
yes:no:no) AC_MSG_ERROR([Requested the Interface driver without netcf or udev support]) ;;
esac
if test "$with_interface" = "yes" ; then
AC_DEFINE_UNQUOTED([WITH_INTERFACE], [1], [whether the interface driver is enabled])
fi
AM_CONDITIONAL([WITH_INTERFACE], [test "$with_interface" = "yes"])
])
AC_DEFUN([LIBVIRT_DRIVER_RESULT_INTERFACE], [
LIBVIRT_RESULT([Interface], [$with_interface])
])

View File

@ -1617,6 +1617,12 @@ elif get_option('driver_hyperv').enabled()
error('openwsman is required for the Hyper-V driver')
endif
if not get_option('driver_interface').disabled() and conf.has('WITH_LIBVIRTD') and (udev_dep.found() or netcf_dep.found())
conf.set('WITH_INTERFACE', 1)
elif get_option('driver_interface').enabled()
error('Requested the Interface driver without netcf or udev and libvirtd support')
endif
if not get_option('driver_libxl').disabled() and conf.has('WITH_LIBVIRTD')
libxl_version = '4.6.0'
libxl_dep = dependency('xenlight', version: '>=' + libxl_version, required: get_option('driver_libxl'))
@ -1898,6 +1904,7 @@ driver_summary = {
'Remote': conf.has('WITH_REMOTE'),
'Network': conf.has('WITH_NETWORK'),
'Libvirtd': conf.has('WITH_LIBVIRTD'),
'Interface': conf.has('WITH_INTERFACE'),
}
summary(driver_summary, section: 'Drivers', bool_yn: true)

View File

@ -51,6 +51,7 @@ option('yajl', type: 'feature', value: 'auto', description: 'yajl support')
option('driver_bhyve', type: 'feature', value: 'auto', description: 'bhyve driver')
option('driver_esx', type: 'feature', value: 'enabled', description: 'esx driver')
option('driver_hyperv', type: 'feature', value: 'auto', description: 'Hyper-V driver')
option('driver_interface', type: 'feature', value: 'auto', description: 'host interface driver')
option('driver_libvirtd', type: 'feature', value: 'auto', description: 'libvirtd driver')
option('driver_libxl', type: 'feature', value: 'auto', description: 'libxenlight driver')
option('driver_lxc', type: 'feature', value: 'auto', description: 'Linux Container driver')