[PATCH] meson: move zlib detection to meson

Paolo Bonzini posted 1 patch 3 years, 8 months ago
Test docker-quick@centos7 failed
Test docker-mingw@fedora failed
Test checkpatch failed
Test FreeBSD failed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200828173841.33505-1-pbonzini@redhat.com
Makefile    |  2 +-
configure   | 32 +-------------------------------
meson.build |  6 +-----
3 files changed, 3 insertions(+), 37 deletions(-)
[PATCH] meson: move zlib detection to meson
Posted by Paolo Bonzini 3 years, 8 months ago
Meson includes the same logic that tries to look for -lz if
pkg-config (and cmake) cannot find zlib.  The undocumented
--disable-zlib-test option becomes a no-op.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 Makefile    |  2 +-
 configure   | 32 +-------------------------------
 meson.build |  6 +-----
 3 files changed, 3 insertions(+), 37 deletions(-)

diff --git a/Makefile b/Makefile
index 81794d5c34..1520a2eab5 100644
--- a/Makefile
+++ b/Makefile
@@ -132,7 +132,7 @@ configure: ;
 
 $(call set-vpath, $(SRC_PATH))
 
-LIBS+=-lz $(LIBS_TOOLS)
+LIBS+=$(LIBS_TOOLS)
 
 SUBDIR_MAKEFLAGS=$(if $(V),,--no-print-directory --quiet) BUILD_DIR=$(BUILD_DIR)
 
diff --git a/configure b/configure
index 6ecaff429b..e035eb2868 100755
--- a/configure
+++ b/configure
@@ -501,7 +501,6 @@ opengl=""
 opengl_dmabuf="no"
 cpuid_h="no"
 avx2_opt=""
-zlib="yes"
 capstone=""
 lzo=""
 snappy=""
@@ -1423,7 +1422,7 @@ for opt do
   ;;
   --enable-usb-redir) usb_redir="yes"
   ;;
-  --disable-zlib-test) zlib="no"
+  --disable-zlib-test)
   ;;
   --disable-lzo) lzo="no"
   ;;
@@ -3898,30 +3897,6 @@ if ! compile_prog "$glib_cflags -Werror" "$glib_libs" ; then
     fi
 fi
 
-#########################################
-# zlib check
-
-if test "$zlib" != "no" ; then
-    if $pkg_config --exists zlib; then
-        zlib_cflags=$($pkg_config --cflags zlib)
-        zlib_libs=$($pkg_config --libs zlib)
-        QEMU_CFLAGS="$zlib_cflags $QEMU_CFLAGS"
-        LIBS="$zlib_libs $LIBS"
-    else
-        cat > $TMPC << EOF
-#include <zlib.h>
-int main(void) { zlibVersion(); return 0; }
-EOF
-        if compile_prog "" "-lz" ; then
-            zlib_libs=-lz
-            LIBS="$LIBS $zlib_libs"
-        else
-            error_exit "zlib check failed" \
-                "Make sure to have the zlib libs and headers installed."
-        fi
-    fi
-fi
-
 ##########################################
 # SHA command probe for modules
 if test "$modules" = yes; then
@@ -7129,11 +7104,6 @@ fi
 if test "$posix_memalign" = "yes" ; then
   echo "CONFIG_POSIX_MEMALIGN=y" >> $config_host_mak
 fi
-if test "$zlib" != "no" ; then
-    echo "CONFIG_ZLIB=y" >> $config_host_mak
-    echo "ZLIB_CFLAGS=$zlib_cflags" >> $config_host_mak
-    echo "ZLIB_LIBS=$zlib_libs" >> $config_host_mak
-fi
 if test "$spice" = "yes" ; then
   echo "CONFIG_SPICE=y" >> $config_host_mak
   echo "SPICE_CFLAGS=$spice_cflags" >> $config_host_mak
diff --git a/meson.build b/meson.build
index 74f8ea0c2e..35e6f8688d 100644
--- a/meson.build
+++ b/meson.build
@@ -134,11 +134,7 @@ if 'CONFIG_AUTH_PAM' in config_host
   pam = cc.find_library('pam')
 endif
 libaio = cc.find_library('aio', required: false)
-zlib = not_found
-if 'CONFIG_ZLIB' in config_host
-  zlib = declare_dependency(compile_args: config_host['ZLIB_CFLAGS'].split(),
-                            link_args: config_host['ZLIB_LIBS'].split())
-endif
+zlib = dependency('zlib', required: true)
 linux_io_uring = not_found
 if 'CONFIG_LINUX_IO_URING' in config_host
   linux_io_uring = declare_dependency(compile_args: config_host['LINUX_IO_URING_CFLAGS'].split(),
-- 
2.26.2


Re: [PATCH] meson: move zlib detection to meson
Posted by 罗勇刚 (Yonggang Luo) 3 years, 8 months ago
On Sat, Aug 29, 2020 at 1:39 AM Paolo Bonzini <pbonzini@redhat.com> wrote:

> Meson includes the same logic that tries to look for -lz if
> pkg-config (and cmake) cannot find zlib.  The undocumented
> --disable-zlib-test option becomes a no-op.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  Makefile    |  2 +-
>  configure   | 32 +-------------------------------
>  meson.build |  6 +-----
>  3 files changed, 3 insertions(+), 37 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 81794d5c34..1520a2eab5 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -132,7 +132,7 @@ configure: ;
>
>  $(call set-vpath, $(SRC_PATH))
>
> -LIBS+=-lz $(LIBS_TOOLS)
> +LIBS+=$(LIBS_TOOLS)
>
>  SUBDIR_MAKEFLAGS=$(if $(V),,--no-print-directory --quiet)
> BUILD_DIR=$(BUILD_DIR)
>
> diff --git a/configure b/configure
> index 6ecaff429b..e035eb2868 100755
> --- a/configure
> +++ b/configure
> @@ -501,7 +501,6 @@ opengl=""
>  opengl_dmabuf="no"
>  cpuid_h="no"
>  avx2_opt=""
> -zlib="yes"
>  capstone=""
>  lzo=""
>  snappy=""
> @@ -1423,7 +1422,7 @@ for opt do
>    ;;
>    --enable-usb-redir) usb_redir="yes"
>    ;;
> -  --disable-zlib-test) zlib="no"
> +  --disable-zlib-test)
>
Why not remove this no-op

>    ;;
>    --disable-lzo) lzo="no"
>    ;;
> @@ -3898,30 +3897,6 @@ if ! compile_prog "$glib_cflags -Werror"
> "$glib_libs" ; then
>      fi
>  fi
>
> -#########################################
> -# zlib check
> -
> -if test "$zlib" != "no" ; then
> -    if $pkg_config --exists zlib; then
> -        zlib_cflags=$($pkg_config --cflags zlib)
> -        zlib_libs=$($pkg_config --libs zlib)
> -        QEMU_CFLAGS="$zlib_cflags $QEMU_CFLAGS"
> -        LIBS="$zlib_libs $LIBS"
> -    else
> -        cat > $TMPC << EOF
> -#include <zlib.h>
> -int main(void) { zlibVersion(); return 0; }
> -EOF
> -        if compile_prog "" "-lz" ; then
> -            zlib_libs=-lz
> -            LIBS="$LIBS $zlib_libs"
> -        else
> -            error_exit "zlib check failed" \
> -                "Make sure to have the zlib libs and headers installed."
> -        fi
> -    fi
> -fi
> -
>  ##########################################
>  # SHA command probe for modules
>  if test "$modules" = yes; then
> @@ -7129,11 +7104,6 @@ fi
>  if test "$posix_memalign" = "yes" ; then
>    echo "CONFIG_POSIX_MEMALIGN=y" >> $config_host_mak
>  fi
> -if test "$zlib" != "no" ; then
> -    echo "CONFIG_ZLIB=y" >> $config_host_mak
> -    echo "ZLIB_CFLAGS=$zlib_cflags" >> $config_host_mak
> -    echo "ZLIB_LIBS=$zlib_libs" >> $config_host_mak
> -fi
>  if test "$spice" = "yes" ; then
>    echo "CONFIG_SPICE=y" >> $config_host_mak
>    echo "SPICE_CFLAGS=$spice_cflags" >> $config_host_mak
> diff --git a/meson.build b/meson.build
> index 74f8ea0c2e..35e6f8688d 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -134,11 +134,7 @@ if 'CONFIG_AUTH_PAM' in config_host
>    pam = cc.find_library('pam')
>  endif
>  libaio = cc.find_library('aio', required: false)
> -zlib = not_found
> -if 'CONFIG_ZLIB' in config_host
> -  zlib = declare_dependency(compile_args:
> config_host['ZLIB_CFLAGS'].split(),
> -                            link_args: config_host['ZLIB_LIBS'].split())
> -endif
> +zlib = dependency('zlib', required: true)
>  linux_io_uring = not_found
>  if 'CONFIG_LINUX_IO_URING' in config_host
>    linux_io_uring = declare_dependency(compile_args:
> config_host['LINUX_IO_URING_CFLAGS'].split(),
> --
> 2.26.2
>
>
>

-- 
         此致
礼
罗勇刚
Yours
    sincerely,
Yonggang Luo
Re: [PATCH] meson: move zlib detection to meson
Posted by Paolo Bonzini 3 years, 8 months ago
Il ven 28 ago 2020, 23:13 罗勇刚(Yonggang Luo) <luoyonggang@gmail.com> ha
scritto:

> -  --disable-zlib-test) zlib="no"
>> +  --disable-zlib-test)
>>
> Why not remove this no-op
>

Because I did not want to introduce visible changes.

Paolo
Re: [PATCH] meson: move zlib detection to meson
Posted by Marc-André Lureau 3 years, 8 months ago
On Fri, Aug 28, 2020 at 9:38 PM Paolo Bonzini <pbonzini@redhat.com> wrote:
>
> Meson includes the same logic that tries to look for -lz if
> pkg-config (and cmake) cannot find zlib.  The undocumented
> --disable-zlib-test option becomes a no-op.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

Nice! (special treatment since 0.54),
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>

> ---
>  Makefile    |  2 +-
>  configure   | 32 +-------------------------------
>  meson.build |  6 +-----
>  3 files changed, 3 insertions(+), 37 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 81794d5c34..1520a2eab5 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -132,7 +132,7 @@ configure: ;
>
>  $(call set-vpath, $(SRC_PATH))
>
> -LIBS+=-lz $(LIBS_TOOLS)
> +LIBS+=$(LIBS_TOOLS)
>
>  SUBDIR_MAKEFLAGS=$(if $(V),,--no-print-directory --quiet) BUILD_DIR=$(BUILD_DIR)
>
> diff --git a/configure b/configure
> index 6ecaff429b..e035eb2868 100755
> --- a/configure
> +++ b/configure
> @@ -501,7 +501,6 @@ opengl=""
>  opengl_dmabuf="no"
>  cpuid_h="no"
>  avx2_opt=""
> -zlib="yes"
>  capstone=""
>  lzo=""
>  snappy=""
> @@ -1423,7 +1422,7 @@ for opt do
>    ;;
>    --enable-usb-redir) usb_redir="yes"
>    ;;
> -  --disable-zlib-test) zlib="no"
> +  --disable-zlib-test)
>    ;;
>    --disable-lzo) lzo="no"
>    ;;
> @@ -3898,30 +3897,6 @@ if ! compile_prog "$glib_cflags -Werror" "$glib_libs" ; then
>      fi
>  fi
>
> -#########################################
> -# zlib check
> -
> -if test "$zlib" != "no" ; then
> -    if $pkg_config --exists zlib; then
> -        zlib_cflags=$($pkg_config --cflags zlib)
> -        zlib_libs=$($pkg_config --libs zlib)
> -        QEMU_CFLAGS="$zlib_cflags $QEMU_CFLAGS"
> -        LIBS="$zlib_libs $LIBS"
> -    else
> -        cat > $TMPC << EOF
> -#include <zlib.h>
> -int main(void) { zlibVersion(); return 0; }
> -EOF
> -        if compile_prog "" "-lz" ; then
> -            zlib_libs=-lz
> -            LIBS="$LIBS $zlib_libs"
> -        else
> -            error_exit "zlib check failed" \
> -                "Make sure to have the zlib libs and headers installed."
> -        fi
> -    fi
> -fi
> -
>  ##########################################
>  # SHA command probe for modules
>  if test "$modules" = yes; then
> @@ -7129,11 +7104,6 @@ fi
>  if test "$posix_memalign" = "yes" ; then
>    echo "CONFIG_POSIX_MEMALIGN=y" >> $config_host_mak
>  fi
> -if test "$zlib" != "no" ; then
> -    echo "CONFIG_ZLIB=y" >> $config_host_mak
> -    echo "ZLIB_CFLAGS=$zlib_cflags" >> $config_host_mak
> -    echo "ZLIB_LIBS=$zlib_libs" >> $config_host_mak
> -fi
>  if test "$spice" = "yes" ; then
>    echo "CONFIG_SPICE=y" >> $config_host_mak
>    echo "SPICE_CFLAGS=$spice_cflags" >> $config_host_mak
> diff --git a/meson.build b/meson.build
> index 74f8ea0c2e..35e6f8688d 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -134,11 +134,7 @@ if 'CONFIG_AUTH_PAM' in config_host
>    pam = cc.find_library('pam')
>  endif
>  libaio = cc.find_library('aio', required: false)
> -zlib = not_found
> -if 'CONFIG_ZLIB' in config_host
> -  zlib = declare_dependency(compile_args: config_host['ZLIB_CFLAGS'].split(),
> -                            link_args: config_host['ZLIB_LIBS'].split())
> -endif
> +zlib = dependency('zlib', required: true)
>  linux_io_uring = not_found
>  if 'CONFIG_LINUX_IO_URING' in config_host
>    linux_io_uring = declare_dependency(compile_args: config_host['LINUX_IO_URING_CFLAGS'].split(),
> --
> 2.26.2
>