[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 44/55] rbd: convert to meson
From: |
Paolo Bonzini |
Subject: |
[PULL 44/55] rbd: convert to meson |
Date: |
Mon, 21 Dec 2020 15:44:36 +0100 |
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
configure | 35 ++++-------------------------------
meson.build | 22 +++++++++++++++++++---
meson_options.txt | 2 ++
3 files changed, 25 insertions(+), 34 deletions(-)
diff --git a/configure b/configure
index 0350b59624..a2e4796053 100755
--- a/configure
+++ b/configure
@@ -383,7 +383,7 @@ qom_cast_debug="yes"
trace_backends="log"
trace_file="trace"
spice="$default_feature"
-rbd="$default_feature"
+rbd="auto"
smartcard="$default_feature"
u2f="auto"
libusb="$default_feature"
@@ -1285,9 +1285,9 @@ for opt do
;;
--enable-opengl) opengl="yes"
;;
- --disable-rbd) rbd="no"
+ --disable-rbd) rbd="disabled"
;;
- --enable-rbd) rbd="yes"
+ --enable-rbd) rbd="enabled"
;;
--disable-xfsctl) xfs="no"
;;
@@ -3605,29 +3605,6 @@ if compile_prog "" "$pthread_lib" ; then
pthread_setname_np_wo_tid=yes
fi
-##########################################
-# rbd probe
-if test "$rbd" != "no" ; then
- cat > $TMPC <<EOF
-#include <stdio.h>
-#include <rbd/librbd.h>
-int main(void) {
- rados_t cluster;
- rados_create(&cluster, NULL);
- return 0;
-}
-EOF
- rbd_libs="-lrbd -lrados"
- if compile_prog "" "$rbd_libs" ; then
- rbd=yes
- else
- if test "$rbd" = "yes" ; then
- feature_not_found "rados block device" "Install librbd/ceph devel"
- fi
- rbd=no
- fi
-fi
-
##########################################
# linux-aio probe
@@ -6182,10 +6159,6 @@ fi
if test "$qom_cast_debug" = "yes" ; then
echo "CONFIG_QOM_CAST_DEBUG=y" >> $config_host_mak
fi
-if test "$rbd" = "yes" ; then
- echo "CONFIG_RBD=y" >> $config_host_mak
- echo "RBD_LIBS=$rbd_libs" >> $config_host_mak
-fi
echo "CONFIG_COROUTINE_BACKEND=$coroutine" >> $config_host_mak
if test "$coroutine_pool" = "yes" ; then
@@ -6724,7 +6697,7 @@ NINJA=$ninja $meson setup \
-Dcapstone=$capstone -Dslirp=$slirp -Dfdt=$fdt -Dbrlapi=$brlapi \
-Dcurl=$curl -Dglusterfs=$glusterfs -Dbzip2=$bzip2
-Dlibiscsi=$libiscsi \
-Dlibnfs=$libnfs -Diconv=$iconv -Dcurses=$curses -Dlibudev=$libudev\
- -Dlibssh=$libssh \
+ -Dlibssh=$libssh -Drbd=$rbd \
-Ddocs=$docs -Dsphinx_build=$sphinx_build -Dinstall_blobs=$blobs \
-Dvhost_user_blk_server=$vhost_user_blk_server \
-Dfuse=$fuse -Dfuse_lseek=$fuse_lseek \
diff --git a/meson.build b/meson.build
index e448624212..92fe7007ef 100644
--- a/meson.build
+++ b/meson.build
@@ -612,9 +612,24 @@ else
endif
rbd = not_found
-if 'CONFIG_RBD' in config_host
- rbd = declare_dependency(link_args: config_host['RBD_LIBS'].split())
+if not get_option('rbd').auto() or have_block
+ librados = cc.find_library('rados', required: get_option('rbd'),
+ static: enable_static)
+ librbd = cc.find_library('rbd', has_headers: ['rbd/librbd.h'],
+ required: get_option('rbd'),
+ static: enable_static)
+ if librados.found() and librbd.found() and cc.links('''
+ #include <stdio.h>
+ #include <rbd/librbd.h>
+ int main(void) {
+ rados_t cluster;
+ rados_create(&cluster, NULL);
+ return 0;
+ }''', dependencies: [librbd, librados])
+ rbd = declare_dependency(dependencies: [librbd, librados])
+ endif
endif
+
glusterfs = not_found
glusterfs_ftruncate_has_stat = false
glusterfs_iocb_has_stat = false
@@ -947,6 +962,7 @@ config_host_data.set('CONFIG_LIBISCSI', libiscsi.found())
config_host_data.set('CONFIG_LIBNFS', libnfs.found())
config_host_data.set('CONFIG_LIBSSH', libssh.found())
config_host_data.set('HAVE_LIBSSH_0_8', have_libssh_0_8)
+config_host_data.set('CONFIG_RBD', rbd.found())
config_host_data.set('CONFIG_SDL', sdl.found())
config_host_data.set('CONFIG_SDL_IMAGE', sdl_image.found())
config_host_data.set('CONFIG_VHOST_USER_BLK_SERVER',
have_vhost_user_blk_server)
@@ -2297,7 +2313,7 @@ if
config_host['TRACE_BACKENDS'].split().contains('simple')
endif
# TODO: add back protocol and server version
summary_info += {'spice support': config_host.has_key('CONFIG_SPICE')}
-summary_info += {'rbd support': config_host.has_key('CONFIG_RBD')}
+summary_info += {'rbd support': rbd.found()}
summary_info += {'xfsctl support': config_host.has_key('CONFIG_XFS')}
summary_info += {'smartcard support': config_host.has_key('CONFIG_SMARTCARD')}
summary_info += {'U2F support': u2f.found()}
diff --git a/meson_options.txt b/meson_options.txt
index 6466dc67f6..630c9dceb7 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -64,6 +64,8 @@ option('curses', type : 'feature', value : 'auto',
description: 'curses UI')
option('libudev', type : 'feature', value : 'auto',
description: 'Use libudev to enumerate host devices')
+option('rbd', type : 'feature', value : 'auto',
+ description: 'Ceph block device driver')
option('sdl', type : 'feature', value : 'auto',
description: 'SDL user interface')
option('sdl_image', type : 'feature', value : 'auto',
--
2.29.2
- [PULL 26/55] meson: update submodule to 0.56.0, (continued)
- [PULL 26/55] meson: update submodule to 0.56.0, Paolo Bonzini, 2020/12/21
- [PULL 22/55] remove TCG includes from common code, Paolo Bonzini, 2020/12/21
- [PULL 41/55] libiscsi: convert to meson, Paolo Bonzini, 2020/12/21
- [PULL 42/55] libnfs: convert to meson, Paolo Bonzini, 2020/12/21
- [PULL 45/55] lzo: convert to meson, Paolo Bonzini, 2020/12/21
- [PULL 53/55] meson.build: convert --with-default-devices to meson, Paolo Bonzini, 2020/12/21
- [PULL 52/55] libattr: convert to meson, Paolo Bonzini, 2020/12/21
- [PULL 54/55] configure: move tests/qemu-iotests/common.env generation to meson, Paolo Bonzini, 2020/12/21
- [PULL 46/55] snappy: convert to meson, Paolo Bonzini, 2020/12/21
- [PULL 51/55] cap_ng: convert to meson, Paolo Bonzini, 2020/12/21
- [PULL 44/55] rbd: convert to meson,
Paolo Bonzini <=
- [PULL 47/55] lzfse: convert to meson, Paolo Bonzini, 2020/12/21
- [PULL 49/55] seccomp: convert to meson, Paolo Bonzini, 2020/12/21