diff mbox series

[06/18] libiscsi: convert to meson

Message ID 20201217094044.46462-7-pbonzini@redhat.com (mailing list archive)
State New, archived
Headers show
Series meson: move detection of various libraries to meson.build | expand

Commit Message

Paolo Bonzini Dec. 17, 2020, 9:40 a.m. UTC
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 block/meson.build                   |  2 +-
 configure                           | 29 ++++-------------------------
 contrib/vhost-user-scsi/meson.build |  2 +-
 meson.build                         | 10 ++++++----
 meson_options.txt                   |  2 ++
 5 files changed, 14 insertions(+), 31 deletions(-)

Comments

Marc-André Lureau Dec. 17, 2020, 12:25 p.m. UTC | #1
On Thu, Dec 17, 2020 at 1:40 PM Paolo Bonzini <pbonzini@redhat.com> wrote:

> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
>

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>

---
>  block/meson.build                   |  2 +-
>  configure                           | 29 ++++-------------------------
>  contrib/vhost-user-scsi/meson.build |  2 +-
>  meson.build                         | 10 ++++++----
>  meson_options.txt                   |  2 ++
>  5 files changed, 14 insertions(+), 31 deletions(-)
>
> diff --git a/block/meson.build b/block/meson.build
> index b02cb14aad..134034abb4 100644
> --- a/block/meson.build
> +++ b/block/meson.build
> @@ -59,7 +59,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 082ac3bf35..e22c56e8f6 100755
> --- a/configure
> +++ b/configure
> @@ -406,7 +406,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"
> @@ -1139,9 +1139,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
>    bswap_h=yes
>  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
> @@ -6231,12 +6216,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
> @@ -6802,7 +6781,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 9ba8eecf37..3f53a7f1b2 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -372,9 +372,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
> @@ -926,6 +927,7 @@ config_host_data.set('CONFIG_GLUSTERFS_FALLOCATE',
> glusterfs.version().version_c
>  config_host_data.set('CONFIG_GLUSTERFS_ZEROFILL',
> glusterfs.version().version_compare('>=6'))
>  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)
> +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)
> @@ -2283,7 +2285,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',
> --
> 2.29.2
>
>
>
diff mbox series

Patch

diff --git a/block/meson.build b/block/meson.build
index b02cb14aad..134034abb4 100644
--- a/block/meson.build
+++ b/block/meson.build
@@ -59,7 +59,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 082ac3bf35..e22c56e8f6 100755
--- a/configure
+++ b/configure
@@ -406,7 +406,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"
@@ -1139,9 +1139,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
   bswap_h=yes
 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
@@ -6231,12 +6216,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
@@ -6802,7 +6781,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 9ba8eecf37..3f53a7f1b2 100644
--- a/meson.build
+++ b/meson.build
@@ -372,9 +372,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
@@ -926,6 +927,7 @@  config_host_data.set('CONFIG_GLUSTERFS_FALLOCATE', glusterfs.version().version_c
 config_host_data.set('CONFIG_GLUSTERFS_ZEROFILL', glusterfs.version().version_compare('>=6'))
 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)
+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)
@@ -2283,7 +2285,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',