[PATCH] configure / meson: Move the GBM handling to meson.build

Thomas Huth posted 1 patch 4 years, 6 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20210713111516.734834-1-thuth@redhat.com
Maintainers: "Michael S. Tsirkin" <mst@redhat.com>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, Gerd Hoffmann <kraxel@redhat.com>
There is a newer version of this series
configure                          | 14 --------------
contrib/vhost-user-gpu/meson.build |  5 ++---
meson.build                        | 13 +++++++------
3 files changed, 9 insertions(+), 23 deletions(-)
[PATCH] configure / meson: Move the GBM handling to meson.build
Posted by Thomas Huth 4 years, 6 months ago
The GBM library detection does not need to be in the configure script,
since it does not have any user-facing options (there are no
--enable-gbm or --disable-gbm switches). Let's move it to meson.build
instead, so we don't have to clutter config-host.mak with the related
switches.

Additionally, only check for GBM if it is really required, i.e. if we
either compile with OpenGL or with virglrenderer support.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 configure                          | 14 --------------
 contrib/vhost-user-gpu/meson.build |  5 ++---
 meson.build                        | 13 +++++++------
 3 files changed, 9 insertions(+), 23 deletions(-)

diff --git a/configure b/configure
index 85db248ac1..7d86b481e2 100755
--- a/configure
+++ b/configure
@@ -3372,13 +3372,6 @@ esac
 ##########################################
 # opengl probe (for sdl2, gtk)
 
-gbm="no"
-if $pkg_config gbm; then
-    gbm_cflags="$($pkg_config --cflags gbm)"
-    gbm_libs="$($pkg_config --libs gbm)"
-    gbm="yes"
-fi
-
 if test "$opengl" != "no" ; then
   epoxy=no
   if $pkg_config epoxy; then
@@ -4673,13 +4666,6 @@ if test "$opengl" = "yes" ; then
   echo "OPENGL_LIBS=$opengl_libs" >> $config_host_mak
 fi
 
-if test "$gbm" = "yes" ; then
-    echo "CONFIG_GBM=y" >> $config_host_mak
-    echo "GBM_LIBS=$gbm_libs" >> $config_host_mak
-    echo "GBM_CFLAGS=$gbm_cflags" >> $config_host_mak
-fi
-
-
 if test "$avx2_opt" = "yes" ; then
   echo "CONFIG_AVX2_OPT=y" >> $config_host_mak
 fi
diff --git a/contrib/vhost-user-gpu/meson.build b/contrib/vhost-user-gpu/meson.build
index 4cb52a91d7..92c8f3a86a 100644
--- a/contrib/vhost-user-gpu/meson.build
+++ b/contrib/vhost-user-gpu/meson.build
@@ -1,6 +1,5 @@
-if 'CONFIG_TOOLS' in config_host and virgl.found() \
-    and 'CONFIG_GBM' in config_host and 'CONFIG_LINUX' in config_host \
-    and pixman.found()
+if 'CONFIG_TOOLS' in config_host and virgl.found() and gbm.found() \
+    and 'CONFIG_LINUX' in config_host and pixman.found()
   executable('vhost-user-gpu', files('vhost-user-gpu.c', 'virgl.c', 'vugbm.c'),
              dependencies: [qemuutil, pixman, gbm, virgl, vhost_user, opengl],
              install: true,
diff --git a/meson.build b/meson.build
index 6cd2dc582a..be7a7b0f69 100644
--- a/meson.build
+++ b/meson.build
@@ -469,11 +469,6 @@ if not get_option('zstd').auto() or have_block
                     required: get_option('zstd'),
                     method: 'pkg-config', kwargs: static_kwargs)
 endif
-gbm = not_found
-if 'CONFIG_GBM' in config_host
-  gbm = declare_dependency(compile_args: config_host['GBM_CFLAGS'].split(),
-                           link_args: config_host['GBM_LIBS'].split())
-endif
 virgl = not_found
 if not get_option('virglrenderer').auto() or have_system
   virgl = dependency('virglrenderer',
@@ -813,11 +808,16 @@ coreaudio = not_found
 if 'CONFIG_AUDIO_COREAUDIO' in config_host
   coreaudio = declare_dependency(link_args: config_host['COREAUDIO_LIBS'].split())
 endif
+
 opengl = not_found
 if 'CONFIG_OPENGL' in config_host
   opengl = declare_dependency(compile_args: config_host['OPENGL_CFLAGS'].split(),
                               link_args: config_host['OPENGL_LIBS'].split())
 endif
+gbm = not_found
+if virgl.found() or 'CONFIG_OPENGL' in config_host
+  gbm = dependency('gbm', method: 'pkg-config', kwargs: static_kwargs)
+endif
 
 gnutls = not_found
 if not get_option('gnutls').auto() or have_system
@@ -1214,6 +1214,7 @@ config_host_data.set('CONFIG_MPATH', mpathpersist.found())
 config_host_data.set('CONFIG_MPATH_NEW_API', mpathpersist_new_api)
 config_host_data.set('CONFIG_CURL', curl.found())
 config_host_data.set('CONFIG_CURSES', curses.found())
+config_host_data.set('CONFIG_GBM', gbm.found())
 config_host_data.set('CONFIG_GLUSTERFS', glusterfs.found())
 if glusterfs.found()
   config_host_data.set('CONFIG_GLUSTERFS_XLATOR_OPT', glusterfs.version().version_compare('>=4'))
@@ -3036,7 +3037,7 @@ summary_info += {'U2F support':       u2f.found()}
 summary_info += {'libusb':            libusb.found()}
 summary_info += {'usb net redir':     usbredir.found()}
 summary_info += {'OpenGL support':    config_host.has_key('CONFIG_OPENGL')}
-summary_info += {'GBM':               config_host.has_key('CONFIG_GBM')}
+summary_info += {'GBM':               gbm.found()}
 summary_info += {'libiscsi support':  libiscsi.found()}
 summary_info += {'libnfs support':    libnfs.found()}
 if targetos == 'windows'
-- 
2.27.0


Re: [PATCH] configure / meson: Move the GBM handling to meson.build
Posted by Paolo Bonzini 4 years, 6 months ago
On 13/07/21 13:15, Thomas Huth wrote:
> The GBM library detection does not need to be in the configure script,
> since it does not have any user-facing options (there are no
> --enable-gbm or --disable-gbm switches). Let's move it to meson.build
> instead, so we don't have to clutter config-host.mak with the related
> switches.
> 
> Additionally, only check for GBM if it is really required, i.e. if we
> either compile with OpenGL or with virglrenderer support.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>

Queued, thanks.

Paolo


Re: [PATCH] configure / meson: Move the GBM handling to meson.build
Posted by Thomas Huth 4 years, 6 months ago
On 13/07/2021 14.29, Paolo Bonzini wrote:
> On 13/07/21 13:15, Thomas Huth wrote:
>> The GBM library detection does not need to be in the configure script,
>> since it does not have any user-facing options (there are no
>> --enable-gbm or --disable-gbm switches). Let's move it to meson.build
>> instead, so we don't have to clutter config-host.mak with the related
>> switches.
>>
>> Additionally, only check for GBM if it is really required, i.e. if we
>> either compile with OpenGL or with virglrenderer support.
>>
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
> 
> Queued, thanks.

Drat, sorry, I sent it out too early, one of the CI pipelines finally failed:

  https://gitlab.com/thuth/qemu/-/jobs/1420060624#L100

... thus please drop it again, I have to fix that first.

  Thomas


Re: [PATCH] configure / meson: Move the GBM handling to meson.build
Posted by Thomas Huth 4 years, 6 months ago
On 14/07/2021 09.12, Thomas Huth wrote:
> On 13/07/2021 14.29, Paolo Bonzini wrote:
>> On 13/07/21 13:15, Thomas Huth wrote:
>>> The GBM library detection does not need to be in the configure script,
>>> since it does not have any user-facing options (there are no
>>> --enable-gbm or --disable-gbm switches). Let's move it to meson.build
>>> instead, so we don't have to clutter config-host.mak with the related
>>> switches.
>>>
>>> Additionally, only check for GBM if it is really required, i.e. if we
>>> either compile with OpenGL or with virglrenderer support.
>>>
>>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>>
>> Queued, thanks.
> 
> Drat, sorry, I sent it out too early, one of the CI pipelines finally failed:
> 
>   https://gitlab.com/thuth/qemu/-/jobs/1420060624#L100
> 
> ... thus please drop it again, I have to fix that first.

It was just a missing "required: false" in the gbm dependency() statement. 
I've just sent out a v2 which should be fine now.

  Thomas



Re: [PATCH] configure / meson: Move the GBM handling to meson.build
Posted by Paolo Bonzini 4 years, 6 months ago
On 13/07/21 13:15, Thomas Huth wrote:
> +if virgl.found() or 'CONFIG_OPENGL' in config_host
> +  gbm = dependency('gbm', method: 'pkg-config', kwargs: static_kwargs)
> +endif
>   
>   gnutls = not_found

Tweaked to add "required: false".

Paolo