On 26/08/2020 09.02, Paolo Bonzini wrote: > When pixman is not installed (or too old), but virglrenderer is available > and "configure" has been run with "--disable-system", the build currently > aborts when trying to compile vhost-user-gpu (since it requires pixman). > > Let's skip the build of vhost-user-gpu when pixman is not installed or > too old. Instead of adding CONFIG_PIXMAN, it is simpler to move the > detection to pixman. > > Based on a patch by Thomas Huth. <th...@redhat.com> > > Fixes: 9b52b17ba5 ("configure: Allow to build tools without pixman") > Reported-by: Rafael Kitover <rkito...@gmail.com> > Reported-by: Philippe Mathieu-Daudé <phi...@redhat.com> > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > configure | 21 ++------------------- > contrib/vhost-user-gpu/meson.build | 3 ++- > meson.build | 12 +++++++----- > 3 files changed, 11 insertions(+), 25 deletions(-) > > diff --git a/configure b/configure > index a5fa472c64..51b6164f69 100755 > --- a/configure > +++ b/configure > @@ -3923,20 +3923,6 @@ if test "$modules" = yes; then > fi > fi > > -########################################## > -# pixman support probe > - > -if test "$softmmu" = "no"; then > - pixman_cflags= > - pixman_libs= > -elif $pkg_config --atleast-version=0.21.8 pixman-1 > /dev/null 2>&1; then > - pixman_cflags=$($pkg_config --cflags pixman-1) > - pixman_libs=$($pkg_config --libs pixman-1) > -else > - error_exit "pixman >= 0.21.8 not present." \ > - "Please install the pixman devel package." > -fi > - > ########################################## > # libmpathpersist probe > > @@ -6649,8 +6635,8 @@ echo_version() { > fi > } > > -# prepend pixman and ftd flags after all config tests are done > -QEMU_CFLAGS="$pixman_cflags $fdt_cflags $QEMU_CFLAGS" > +# prepend ftd flags after all config tests are done > +QEMU_CFLAGS="$fdt_cflags $QEMU_CFLAGS" > QEMU_LDFLAGS="$fdt_ldflags $QEMU_LDFLAGS" > > config_host_mak="config-host.mak" > @@ -8053,9 +8039,6 @@ fi > > done # for target in $targets > > -echo "PIXMAN_CFLAGS=$pixman_cflags" >> $config_host_mak > -echo "PIXMAN_LIBS=$pixman_libs" >> $config_host_mak > - > if [ "$fdt" = "git" ]; then > subdirs="$subdirs dtc" > fi > diff --git a/contrib/vhost-user-gpu/meson.build > b/contrib/vhost-user-gpu/meson.build > index 8df4c13bc5..7d9b29da8b 100644 > --- a/contrib/vhost-user-gpu/meson.build > +++ b/contrib/vhost-user-gpu/meson.build > @@ -1,5 +1,6 @@ > if 'CONFIG_TOOLS' in config_host and 'CONFIG_VIRGL' in config_host \ > - and 'CONFIG_GBM' in config_host and 'CONFIG_LINUX' in config_host > + and 'CONFIG_GBM' in config_host and 'CONFIG_LINUX' in config_host \ > + and pixman.found() > executable('vhost-user-gpu', files('vhost-user-gpu.c', 'virgl.c', > 'vugbm.c'), > link_with: libvhost_user, > dependencies: [qemuutil, pixman, gbm, virgl], > diff --git a/meson.build b/meson.build > index bcd39b39da..57c2fe2b65 100644 > --- a/meson.build > +++ b/meson.build > @@ -114,8 +114,11 @@ if 'CONFIG_GNUTLS' in config_host > gnutls = declare_dependency(compile_args: > config_host['GNUTLS_CFLAGS'].split(), > link_args: config_host['GNUTLS_LIBS'].split()) > endif > -pixman = declare_dependency(compile_args: > config_host['PIXMAN_CFLAGS'].split(), > - link_args: config_host['PIXMAN_LIBS'].split()) > +pixman = not_found > +if have_system or have_tools > + pixman = dependency('pixman', required: have_system, version:'>=0.21.8', > + static: enable_static) > +endif
With the dependency from another patch that have_system and have_tools are initialized earlier in this file: Reviewed-by: Thomas Huth <th...@redhat.com>