Message ID | 20201217094044.46462-14-pbonzini@redhat.com |
---|---|
State | New |
Headers | show |
Series | meson: move detection of various libraries to meson.build | expand |
On Thu, Dec 17, 2020 at 1:41 PM Paolo Bonzini <pbonzini@redhat.com> wrote: > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > --- > configure | 30 ++++-------------------------- > meson.build | 10 ++++++---- > meson_options.txt | 2 ++ > migration/meson.build | 2 +- > 4 files changed, 13 insertions(+), 31 deletions(-) > > diff --git a/configure b/configure > index ea5650acca..649da881a2 100755 > --- a/configure > +++ b/configure > @@ -398,7 +398,7 @@ lzo="auto" > snappy="auto" > bzip2="auto" > lzfse="auto" > -zstd="$default_feature" > +zstd="auto" > guest_agent="$default_feature" > guest_agent_with_vss="no" > guest_agent_ntddscsi="no" > @@ -1328,9 +1328,9 @@ for opt do > ;; > --disable-lzfse) lzfse="disabled" > ;; > - --disable-zstd) zstd="no" > + --disable-zstd) zstd="disabled" > ;; > - --enable-zstd) zstd="yes" > + --enable-zstd) zstd="enabled" > ;; > --enable-guest-agent) guest_agent="yes" > ;; > @@ -2458,23 +2458,6 @@ EOF > fi > fi > > -########################################## > -# zstd check > - > -if test "$zstd" != "no" ; then > - libzstd_minver="1.4.0" > - if $pkg_config --atleast-version=$libzstd_minver libzstd ; then > - zstd_cflags="$($pkg_config --cflags libzstd)" > - zstd_libs="$($pkg_config --libs libzstd)" > - zstd="yes" > - else > - if test "$zstd" = "yes" ; then > - feature_not_found "libzstd" "Install libzstd devel" > - fi > - zstd="no" > - fi > -fi > - > ########################################## > # libseccomp check > > @@ -6070,12 +6053,6 @@ if test "$avx512f_opt" = "yes" ; then > echo "CONFIG_AVX512F_OPT=y" >> $config_host_mak > fi > > -if test "$zstd" = "yes" ; then > - echo "CONFIG_ZSTD=y" >> $config_host_mak > - echo "ZSTD_CFLAGS=$zstd_cflags" >> $config_host_mak > - echo "ZSTD_LIBS=$zstd_libs" >> $config_host_mak > -fi > - > if test "$seccomp" = "yes"; then > echo "CONFIG_SECCOMP=y" >> $config_host_mak > echo "SECCOMP_CFLAGS=$seccomp_cflags" >> $config_host_mak > @@ -6629,6 +6606,7 @@ NINJA=$ninja $meson setup \ > -Dcurl=$curl -Dglusterfs=$glusterfs -Dbzip2=$bzip2 > -Dlibiscsi=$libiscsi \ > -Dlibnfs=$libnfs -Diconv=$iconv -Dcurses=$curses > -Dlibudev=$libudev\ > -Dlibssh=$libssh -Drbd=$rbd -Dlzo=$lzo -Dsnappy=$snappy > -Dlzfse=$lzfse \ > + -Dzstd=$zstd \ > -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 c02d9c3e1a..93a95d7a7f 100644 > --- a/meson.build > +++ b/meson.build > @@ -380,9 +380,10 @@ if not get_option('libiscsi').auto() or have_block > method: 'pkg-config', static: enable_static) > endif > zstd = not_found > -if 'CONFIG_ZSTD' in config_host > - zstd = declare_dependency(compile_args: > config_host['ZSTD_CFLAGS'].split(), > - link_args: config_host['ZSTD_LIBS'].split()) > +if not get_option('zstd').auto() or have_block > + zstd = dependency('zstd', version: '>=1.4.0', > -> libzstd Interestingly, meson didn't seem to overwrite config-host.h correctly (that's how I noticed failed to link). I removed it and now it regenerates it correctly.. weird. + required: get_option('zstd'), > + method: 'pkg-config', static: enable_static) > endif > gbm = not_found > if 'CONFIG_GBM' in config_host > @@ -1003,6 +1004,7 @@ config_host_data.set('CONFIG_KEYUTILS', > keyutils.found()) > config_host_data.set('CONFIG_GETTID', has_gettid) > config_host_data.set('CONFIG_MALLOC_TRIM', has_malloc_trim) > config_host_data.set('CONFIG_STATX', has_statx) > +config_host_data.set('CONFIG_ZSTD', zstd.found()) > config_host_data.set('CONFIG_FUSE', fuse.found()) > config_host_data.set('CONFIG_FUSE_LSEEK', fuse_lseek.found()) > config_host_data.set('CONFIG_CFI', get_option('cfi')) > @@ -2377,7 +2379,7 @@ summary_info += {'lzo support': lzo.found()} > summary_info += {'snappy support': snappy.found()} > summary_info += {'bzip2 support': libbzip2.found()} > summary_info += {'lzfse support': liblzfse.found()} > -summary_info += {'zstd support': config_host.has_key('CONFIG_ZSTD')} > +summary_info += {'zstd support': zstd.found()} > summary_info += {'NUMA host support': config_host.has_key('CONFIG_NUMA')} > summary_info += {'libxml2': > config_host.has_key('CONFIG_LIBXML2')} > summary_info += {'memory allocator': get_option('malloc')} > diff --git a/meson_options.txt b/meson_options.txt > index f74a3d78c4..5a1de9b1fe 100644 > --- a/meson_options.txt > +++ b/meson_options.txt > @@ -92,6 +92,8 @@ option('virtiofsd', type: 'feature', value: 'auto', > description: 'build virtiofs daemon (virtiofsd)') > option('vhost_user_blk_server', type: 'feature', value: 'auto', > description: 'build vhost-user-blk server') > +option('zstd', type : 'feature', value : 'auto', > + description: 'zstd compression support') > option('fuse', type: 'feature', value: 'auto', > description: 'FUSE block device export') > option('fuse_lseek', type : 'feature', value : 'auto', > diff --git a/migration/meson.build b/migration/meson.build > index 980e37865c..c783f2f2ae 100644 > --- a/migration/meson.build > +++ b/migration/meson.build > @@ -29,6 +29,6 @@ softmmu_ss.add(files( > > softmmu_ss.add(when: ['CONFIG_RDMA', rdma], if_true: files('rdma.c')) > softmmu_ss.add(when: 'CONFIG_LIVE_BLOCK_MIGRATION', if_true: > files('block.c')) > -softmmu_ss.add(when: 'CONFIG_ZSTD', if_true: [files('multifd-zstd.c'), > zstd]) > +softmmu_ss.add(when: zstd, if_true: files('multifd-zstd.c')) > > specific_ss.add(when: 'CONFIG_SOFTMMU', if_true: files('dirtyrate.c', > 'ram.c')) > -- > 2.29.2 > > >
On Thu, Dec 17, 2020 at 5:31 PM Marc-André Lureau < marcandre.lureau@redhat.com> wrote: > > > On Thu, Dec 17, 2020 at 1:41 PM Paolo Bonzini <pbonzini@redhat.com> wrote: > >> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> >> --- >> configure | 30 ++++-------------------------- >> meson.build | 10 ++++++---- >> meson_options.txt | 2 ++ >> migration/meson.build | 2 +- >> 4 files changed, 13 insertions(+), 31 deletions(-) >> >> diff --git a/configure b/configure >> index ea5650acca..649da881a2 100755 >> --- a/configure >> +++ b/configure >> @@ -398,7 +398,7 @@ lzo="auto" >> snappy="auto" >> bzip2="auto" >> lzfse="auto" >> -zstd="$default_feature" >> +zstd="auto" >> guest_agent="$default_feature" >> guest_agent_with_vss="no" >> guest_agent_ntddscsi="no" >> @@ -1328,9 +1328,9 @@ for opt do >> ;; >> --disable-lzfse) lzfse="disabled" >> ;; >> - --disable-zstd) zstd="no" >> + --disable-zstd) zstd="disabled" >> ;; >> - --enable-zstd) zstd="yes" >> + --enable-zstd) zstd="enabled" >> ;; >> --enable-guest-agent) guest_agent="yes" >> ;; >> @@ -2458,23 +2458,6 @@ EOF >> fi >> fi >> >> -########################################## >> -# zstd check >> - >> -if test "$zstd" != "no" ; then >> - libzstd_minver="1.4.0" >> - if $pkg_config --atleast-version=$libzstd_minver libzstd ; then >> - zstd_cflags="$($pkg_config --cflags libzstd)" >> - zstd_libs="$($pkg_config --libs libzstd)" >> - zstd="yes" >> - else >> - if test "$zstd" = "yes" ; then >> - feature_not_found "libzstd" "Install libzstd devel" >> - fi >> - zstd="no" >> - fi >> -fi >> - >> ########################################## >> # libseccomp check >> >> @@ -6070,12 +6053,6 @@ if test "$avx512f_opt" = "yes" ; then >> echo "CONFIG_AVX512F_OPT=y" >> $config_host_mak >> fi >> >> -if test "$zstd" = "yes" ; then >> - echo "CONFIG_ZSTD=y" >> $config_host_mak >> - echo "ZSTD_CFLAGS=$zstd_cflags" >> $config_host_mak >> - echo "ZSTD_LIBS=$zstd_libs" >> $config_host_mak >> -fi >> - >> if test "$seccomp" = "yes"; then >> echo "CONFIG_SECCOMP=y" >> $config_host_mak >> echo "SECCOMP_CFLAGS=$seccomp_cflags" >> $config_host_mak >> @@ -6629,6 +6606,7 @@ NINJA=$ninja $meson setup \ >> -Dcurl=$curl -Dglusterfs=$glusterfs -Dbzip2=$bzip2 >> -Dlibiscsi=$libiscsi \ >> -Dlibnfs=$libnfs -Diconv=$iconv -Dcurses=$curses >> -Dlibudev=$libudev\ >> -Dlibssh=$libssh -Drbd=$rbd -Dlzo=$lzo -Dsnappy=$snappy >> -Dlzfse=$lzfse \ >> + -Dzstd=$zstd \ >> -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 c02d9c3e1a..93a95d7a7f 100644 >> --- a/meson.build >> +++ b/meson.build >> @@ -380,9 +380,10 @@ if not get_option('libiscsi').auto() or have_block >> method: 'pkg-config', static: enable_static) >> endif >> zstd = not_found >> -if 'CONFIG_ZSTD' in config_host >> - zstd = declare_dependency(compile_args: >> config_host['ZSTD_CFLAGS'].split(), >> - link_args: config_host['ZSTD_LIBS'].split()) >> +if not get_option('zstd').auto() or have_block >> + zstd = dependency('zstd', version: '>=1.4.0', >> > > -> libzstd > > Interestingly, meson didn't seem to overwrite config-host.h correctly > (that's how I noticed failed to link). I removed it and now it regenerates > it correctly.. weird. > > with that fix, Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> + required: get_option('zstd'), >> + method: 'pkg-config', static: enable_static) >> endif >> gbm = not_found >> if 'CONFIG_GBM' in config_host >> @@ -1003,6 +1004,7 @@ config_host_data.set('CONFIG_KEYUTILS', >> keyutils.found()) >> config_host_data.set('CONFIG_GETTID', has_gettid) >> config_host_data.set('CONFIG_MALLOC_TRIM', has_malloc_trim) >> config_host_data.set('CONFIG_STATX', has_statx) >> +config_host_data.set('CONFIG_ZSTD', zstd.found()) >> config_host_data.set('CONFIG_FUSE', fuse.found()) >> config_host_data.set('CONFIG_FUSE_LSEEK', fuse_lseek.found()) >> config_host_data.set('CONFIG_CFI', get_option('cfi')) >> @@ -2377,7 +2379,7 @@ summary_info += {'lzo support': lzo.found()} >> summary_info += {'snappy support': snappy.found()} >> summary_info += {'bzip2 support': libbzip2.found()} >> summary_info += {'lzfse support': liblzfse.found()} >> -summary_info += {'zstd support': config_host.has_key('CONFIG_ZSTD')} >> +summary_info += {'zstd support': zstd.found()} >> summary_info += {'NUMA host support': config_host.has_key('CONFIG_NUMA')} >> summary_info += {'libxml2': >> config_host.has_key('CONFIG_LIBXML2')} >> summary_info += {'memory allocator': get_option('malloc')} >> diff --git a/meson_options.txt b/meson_options.txt >> index f74a3d78c4..5a1de9b1fe 100644 >> --- a/meson_options.txt >> +++ b/meson_options.txt >> @@ -92,6 +92,8 @@ option('virtiofsd', type: 'feature', value: 'auto', >> description: 'build virtiofs daemon (virtiofsd)') >> option('vhost_user_blk_server', type: 'feature', value: 'auto', >> description: 'build vhost-user-blk server') >> +option('zstd', type : 'feature', value : 'auto', >> + description: 'zstd compression support') >> option('fuse', type: 'feature', value: 'auto', >> description: 'FUSE block device export') >> option('fuse_lseek', type : 'feature', value : 'auto', >> diff --git a/migration/meson.build b/migration/meson.build >> index 980e37865c..c783f2f2ae 100644 >> --- a/migration/meson.build >> +++ b/migration/meson.build >> @@ -29,6 +29,6 @@ softmmu_ss.add(files( >> >> softmmu_ss.add(when: ['CONFIG_RDMA', rdma], if_true: files('rdma.c')) >> softmmu_ss.add(when: 'CONFIG_LIVE_BLOCK_MIGRATION', if_true: >> files('block.c')) >> -softmmu_ss.add(when: 'CONFIG_ZSTD', if_true: [files('multifd-zstd.c'), >> zstd]) >> +softmmu_ss.add(when: zstd, if_true: files('multifd-zstd.c')) >> >> specific_ss.add(when: 'CONFIG_SOFTMMU', if_true: files('dirtyrate.c', >> 'ram.c')) >> -- >> 2.29.2 >> >> >>
diff --git a/configure b/configure index ea5650acca..649da881a2 100755 --- a/configure +++ b/configure @@ -398,7 +398,7 @@ lzo="auto" snappy="auto" bzip2="auto" lzfse="auto" -zstd="$default_feature" +zstd="auto" guest_agent="$default_feature" guest_agent_with_vss="no" guest_agent_ntddscsi="no" @@ -1328,9 +1328,9 @@ for opt do ;; --disable-lzfse) lzfse="disabled" ;; - --disable-zstd) zstd="no" + --disable-zstd) zstd="disabled" ;; - --enable-zstd) zstd="yes" + --enable-zstd) zstd="enabled" ;; --enable-guest-agent) guest_agent="yes" ;; @@ -2458,23 +2458,6 @@ EOF fi fi -########################################## -# zstd check - -if test "$zstd" != "no" ; then - libzstd_minver="1.4.0" - if $pkg_config --atleast-version=$libzstd_minver libzstd ; then - zstd_cflags="$($pkg_config --cflags libzstd)" - zstd_libs="$($pkg_config --libs libzstd)" - zstd="yes" - else - if test "$zstd" = "yes" ; then - feature_not_found "libzstd" "Install libzstd devel" - fi - zstd="no" - fi -fi - ########################################## # libseccomp check @@ -6070,12 +6053,6 @@ if test "$avx512f_opt" = "yes" ; then echo "CONFIG_AVX512F_OPT=y" >> $config_host_mak fi -if test "$zstd" = "yes" ; then - echo "CONFIG_ZSTD=y" >> $config_host_mak - echo "ZSTD_CFLAGS=$zstd_cflags" >> $config_host_mak - echo "ZSTD_LIBS=$zstd_libs" >> $config_host_mak -fi - if test "$seccomp" = "yes"; then echo "CONFIG_SECCOMP=y" >> $config_host_mak echo "SECCOMP_CFLAGS=$seccomp_cflags" >> $config_host_mak @@ -6629,6 +6606,7 @@ NINJA=$ninja $meson setup \ -Dcurl=$curl -Dglusterfs=$glusterfs -Dbzip2=$bzip2 -Dlibiscsi=$libiscsi \ -Dlibnfs=$libnfs -Diconv=$iconv -Dcurses=$curses -Dlibudev=$libudev\ -Dlibssh=$libssh -Drbd=$rbd -Dlzo=$lzo -Dsnappy=$snappy -Dlzfse=$lzfse \ + -Dzstd=$zstd \ -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 c02d9c3e1a..93a95d7a7f 100644 --- a/meson.build +++ b/meson.build @@ -380,9 +380,10 @@ if not get_option('libiscsi').auto() or have_block method: 'pkg-config', static: enable_static) endif zstd = not_found -if 'CONFIG_ZSTD' in config_host - zstd = declare_dependency(compile_args: config_host['ZSTD_CFLAGS'].split(), - link_args: config_host['ZSTD_LIBS'].split()) +if not get_option('zstd').auto() or have_block + zstd = dependency('zstd', version: '>=1.4.0', + required: get_option('zstd'), + method: 'pkg-config', static: enable_static) endif gbm = not_found if 'CONFIG_GBM' in config_host @@ -1003,6 +1004,7 @@ config_host_data.set('CONFIG_KEYUTILS', keyutils.found()) config_host_data.set('CONFIG_GETTID', has_gettid) config_host_data.set('CONFIG_MALLOC_TRIM', has_malloc_trim) config_host_data.set('CONFIG_STATX', has_statx) +config_host_data.set('CONFIG_ZSTD', zstd.found()) config_host_data.set('CONFIG_FUSE', fuse.found()) config_host_data.set('CONFIG_FUSE_LSEEK', fuse_lseek.found()) config_host_data.set('CONFIG_CFI', get_option('cfi')) @@ -2377,7 +2379,7 @@ summary_info += {'lzo support': lzo.found()} summary_info += {'snappy support': snappy.found()} summary_info += {'bzip2 support': libbzip2.found()} summary_info += {'lzfse support': liblzfse.found()} -summary_info += {'zstd support': config_host.has_key('CONFIG_ZSTD')} +summary_info += {'zstd support': zstd.found()} summary_info += {'NUMA host support': config_host.has_key('CONFIG_NUMA')} summary_info += {'libxml2': config_host.has_key('CONFIG_LIBXML2')} summary_info += {'memory allocator': get_option('malloc')} diff --git a/meson_options.txt b/meson_options.txt index f74a3d78c4..5a1de9b1fe 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -92,6 +92,8 @@ option('virtiofsd', type: 'feature', value: 'auto', description: 'build virtiofs daemon (virtiofsd)') option('vhost_user_blk_server', type: 'feature', value: 'auto', description: 'build vhost-user-blk server') +option('zstd', type : 'feature', value : 'auto', + description: 'zstd compression support') option('fuse', type: 'feature', value: 'auto', description: 'FUSE block device export') option('fuse_lseek', type : 'feature', value : 'auto', diff --git a/migration/meson.build b/migration/meson.build index 980e37865c..c783f2f2ae 100644 --- a/migration/meson.build +++ b/migration/meson.build @@ -29,6 +29,6 @@ softmmu_ss.add(files( softmmu_ss.add(when: ['CONFIG_RDMA', rdma], if_true: files('rdma.c')) softmmu_ss.add(when: 'CONFIG_LIVE_BLOCK_MIGRATION', if_true: files('block.c')) -softmmu_ss.add(when: 'CONFIG_ZSTD', if_true: [files('multifd-zstd.c'), zstd]) +softmmu_ss.add(when: zstd, if_true: files('multifd-zstd.c')) specific_ss.add(when: 'CONFIG_SOFTMMU', if_true: files('dirtyrate.c', 'ram.c'))
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- configure | 30 ++++-------------------------- meson.build | 10 ++++++---- meson_options.txt | 2 ++ migration/meson.build | 2 +- 4 files changed, 13 insertions(+), 31 deletions(-)