summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2020-11-17 13:11:25 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2021-01-02 21:03:37 +0100
commit9db405a33576982b2366a379bea4424c2974ab46 (patch)
treef7a1df7fc9531c28557cd13a76cd6265b108d46e
parent29ba6116b6db5adb13e2d807f7ddd2a6681f1a08 (diff)
downloadqemu-9db405a33576982b2366a379bea4424c2974ab46.zip
libiscsi: convert to meson
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--block/meson.build2
-rwxr-xr-xconfigure29
-rw-r--r--contrib/vhost-user-scsi/meson.build2
-rw-r--r--meson.build10
-rw-r--r--meson_options.txt2
5 files changed, 14 insertions, 31 deletions
diff --git a/block/meson.build b/block/meson.build
index 16d39f06fb..d44c92ab04 100644
--- a/block/meson.build
+++ b/block/meson.build
@@ -60,7 +60,7 @@ block_ss.add(when: 'CONFIG_QED', if_true: files(
block_ss.add(when: [libxml2, 'CONFIG_PARALLELS'], if_true: files('parallels.c'))
block_ss.add(when: 'CONFIG_WIN32', if_true: files('file-win32.c', 'win32-aio.c'))
block_ss.add(when: 'CONFIG_POSIX', if_true: [files('file-posix.c'), coref, iokit])
-block_ss.add(when: 'CONFIG_LIBISCSI', if_true: files('iscsi-opts.c'))
+block_ss.add(when: libiscsi, if_true: files('iscsi-opts.c'))
block_ss.add(when: 'CONFIG_LINUX', if_true: files('nvme.c'))
block_ss.add(when: 'CONFIG_REPLICATION', if_true: files('replication.c'))
block_ss.add(when: 'CONFIG_SHEEPDOG', if_true: files('sheepdog.c'))
diff --git a/configure b/configure
index 9c09645e79..1eb5f30d61 100755
--- a/configure
+++ b/configure
@@ -405,7 +405,7 @@ guest_agent_msi="$default_feature"
vss_win32_sdk="$default_feature"
win_sdk="no"
want_tools="$default_feature"
-libiscsi="$default_feature"
+libiscsi="auto"
libnfs="$default_feature"
coroutine=""
coroutine_pool="$default_feature"
@@ -1138,9 +1138,9 @@ for opt do
;;
--enable-spice) spice="yes"
;;
- --disable-libiscsi) libiscsi="no"
+ --disable-libiscsi) libiscsi="disabled"
;;
- --enable-libiscsi) libiscsi="yes"
+ --enable-libiscsi) libiscsi="enabled"
;;
--disable-libnfs) libnfs="no"
;;
@@ -4315,21 +4315,6 @@ if compile_prog "" "" ; then
fi
##########################################
-# Do we have libiscsi >= 1.9.0
-if test "$libiscsi" != "no" ; then
- if $pkg_config --atleast-version=1.9.0 libiscsi; then
- libiscsi="yes"
- libiscsi_cflags=$($pkg_config --cflags libiscsi)
- libiscsi_libs=$($pkg_config --libs libiscsi)
- else
- if test "$libiscsi" = "yes" ; then
- feature_not_found "libiscsi" "Install libiscsi >= 1.9.0"
- fi
- libiscsi="no"
- fi
-fi
-
-##########################################
# Do we need librt
# uClibc provides 2 versions of clock_gettime(), one with realtime
# support and one without. This means that the clock_gettime() don't
@@ -6230,12 +6215,6 @@ if test "$zstd" = "yes" ; then
echo "ZSTD_LIBS=$zstd_libs" >> $config_host_mak
fi
-if test "$libiscsi" = "yes" ; then
- echo "CONFIG_LIBISCSI=y" >> $config_host_mak
- echo "LIBISCSI_CFLAGS=$libiscsi_cflags" >> $config_host_mak
- echo "LIBISCSI_LIBS=$libiscsi_libs" >> $config_host_mak
-fi
-
if test "$libnfs" = "yes" ; then
echo "CONFIG_LIBNFS=y" >> $config_host_mak
echo "LIBNFS_LIBS=$libnfs_libs" >> $config_host_mak
@@ -6806,7 +6785,7 @@ NINJA=$ninja $meson setup \
-Dvnc=$vnc -Dvnc_sasl=$vnc_sasl -Dvnc_jpeg=$vnc_jpeg -Dvnc_png=$vnc_png \
-Dgettext=$gettext -Dxkbcommon=$xkbcommon -Du2f=$u2f -Dvirtiofsd=$virtiofsd \
-Dcapstone=$capstone -Dslirp=$slirp -Dfdt=$fdt -Dbrlapi=$brlapi \
- -Dcurl=$curl -Dglusterfs=$glusterfs -Dbzip2=$bzip2 \
+ -Dcurl=$curl -Dglusterfs=$glusterfs -Dbzip2=$bzip2 -Dlibiscsi=$libiscsi \
-Diconv=$iconv -Dcurses=$curses -Dlibudev=$libudev\
-Ddocs=$docs -Dsphinx_build=$sphinx_build -Dinstall_blobs=$blobs \
-Dvhost_user_blk_server=$vhost_user_blk_server \
diff --git a/contrib/vhost-user-scsi/meson.build b/contrib/vhost-user-scsi/meson.build
index 044c50bf43..cc893f6f20 100644
--- a/contrib/vhost-user-scsi/meson.build
+++ b/contrib/vhost-user-scsi/meson.build
@@ -1,4 +1,4 @@
-if 'CONFIG_LIBISCSI' in config_host
+if libiscsi.found()
executable('vhost-user-scsi', files('vhost-user-scsi.c'),
dependencies: [qemuutil, libiscsi, vhost_user],
build_by_default: targetos == 'linux',
diff --git a/meson.build b/meson.build
index 2191a89647..f671714f40 100644
--- a/meson.build
+++ b/meson.build
@@ -376,9 +376,10 @@ if 'CONFIG_PLUGIN' in config_host
libdl = cc.find_library('dl', required: true)
endif
libiscsi = not_found
-if 'CONFIG_LIBISCSI' in config_host
- libiscsi = declare_dependency(compile_args: config_host['LIBISCSI_CFLAGS'].split(),
- link_args: config_host['LIBISCSI_LIBS'].split())
+if not get_option('libiscsi').auto() or have_block
+ libiscsi = dependency('libiscsi', version: '>=1.9.0',
+ required: get_option('libiscsi'),
+ method: 'pkg-config', static: enable_static)
endif
zstd = not_found
if 'CONFIG_ZSTD' in config_host
@@ -932,6 +933,7 @@ if glusterfs.found()
config_host_data.set('CONFIG_GLUSTERFS_FTRUNCATE_HAS_STAT', glusterfs_ftruncate_has_stat)
config_host_data.set('CONFIG_GLUSTERFS_IOCB_HAS_STAT', glusterfs_iocb_has_stat)
endif
+config_host_data.set('CONFIG_LIBISCSI', libiscsi.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)
@@ -2290,7 +2292,7 @@ summary_info += {'libusb': config_host.has_key('CONFIG_USB_LIBUSB')}
summary_info += {'usb net redir': config_host.has_key('CONFIG_USB_REDIR')}
summary_info += {'OpenGL support': config_host.has_key('CONFIG_OPENGL')}
summary_info += {'OpenGL dmabufs': config_host.has_key('CONFIG_OPENGL_DMABUF')}
-summary_info += {'libiscsi support': config_host.has_key('CONFIG_LIBISCSI')}
+summary_info += {'libiscsi support': libiscsi.found()}
summary_info += {'libnfs support': config_host.has_key('CONFIG_LIBNFS')}
summary_info += {'build guest agent': config_host.has_key('CONFIG_GUEST_AGENT')}
if targetos == 'windows'
diff --git a/meson_options.txt b/meson_options.txt
index fd16f3b399..b562d4f1a6 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -50,6 +50,8 @@ option('curl', type : 'feature', value : 'auto',
description: 'CURL block device driver')
option('glusterfs', type : 'feature', value : 'auto',
description: 'Glusterfs block device driver')
+option('libiscsi', type : 'feature', value : 'auto',
+ description: 'libiscsi userspace initiator')
option('mpath', type : 'feature', value : 'auto',
description: 'Multipath persistent reservation passthrough')
option('iconv', type : 'feature', value : 'auto',