aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2021-12-18 16:39:43 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2022-02-16 15:01:33 +0100
commita436d6d4126d59e7373e6887c7bd02701ce1156c (patch)
tree1e7fc15c60c241f5872261f91b5091bf2e663fa7 /tools
parent43a363ae35f4a04bfb86e0ad033d33ef83514597 (diff)
meson: use .require() and .disable_auto_if() method for features
The method is now in 0.59, using it simplifies some conditionals. There is a small change, which is to build virtfs-proxy-helper in a tools-only build. This is done for consistency with other tools, which are not culled by the absence of system emulator binaries. .disable_auto_if() would also be useful to check for packages, for example -linux_io_uring = not_found -if not get_option('linux_io_uring').auto() or have_block - linux_io_uring = dependency('liburing', required: get_option('linux_io_uring'), - method: 'pkg-config', kwargs: static_kwargs) -endif +linux_io_uring = dependency('liburing', + required: get_option('linux_io_uring').disable_auto_if(not have_block), + method: 'pkg-config', kwargs: static_kwargs) This change however is much larger and I am not sure about the improved readability, so I am not performing it right now. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/meson.build31
1 files changed, 9 insertions, 22 deletions
diff --git a/tools/meson.build b/tools/meson.build
index 3e5a0abfa2..46977af84f 100644
--- a/tools/meson.build
+++ b/tools/meson.build
@@ -1,25 +1,12 @@
-have_virtiofsd = (targetos == 'linux' and
- have_tools and
- seccomp.found() and
- libcap_ng.found() and
- 'CONFIG_VHOST_USER' in config_host)
-
-if get_option('virtiofsd').enabled()
- if not have_virtiofsd
- if targetos != 'linux'
- error('virtiofsd requires Linux')
- elif not seccomp.found() or not libcap_ng.found()
- error('virtiofsd requires libcap-ng-devel and seccomp-devel')
- elif 'CONFIG_VHOST_USER' not in config_host
- error('virtiofsd needs vhost-user support')
- else
- # Disabled all the tools but virtiofsd.
- have_virtiofsd = true
- endif
- endif
-elif get_option('virtiofsd').disabled() or not have_system
- have_virtiofsd = false
-endif
+have_virtiofsd = get_option('virtiofsd') \
+ .require(targetos == 'linux',
+ error_message: 'virtiofsd requires Linux') \
+ .require(seccomp.found() and libcap_ng.found(),
+ error_message: 'virtiofsd requires libcap-ng-devel and seccomp-devel') \
+ .require('CONFIG_VHOST_USER' in config_host,
+ error_message: 'virtiofsd needs vhost-user-support') \
+ .disable_auto_if(not have_tools and not have_system) \
+ .allowed()
if have_virtiofsd
subdir('virtiofsd')