[Mesa-dev] [PATCH] meson: fix warnings about comparing unlike types

Dylan Baker dylan at pnwbakers.com
Thu Mar 29 16:31:13 UTC 2018


In the old days (0.42.x), when mesa's meson system was written the
recommendation for handling conditional dependencies was to define them
as empty lists. When meson would evaluate the dependencies of a target
it would recursively flatten all of the arguments, and empty lists would
be removed. There are some problems with this, among them that lists and
dependencies have different methods (namely .found()), so the
recommendation changed to use `declare_dependency()` for such cases.
This has the advantage of providing a .found() method, so there is no
need to do things like `dep_foo != [] and dep_foo.found()`.

I've tested this with 0.42 (the minimum we claim to support) and 0.45.
On 0.45 this removes warnings about comparing unlike types.

Signed-off-by: Dylan Baker <dylan.c.baker at intel.com>
---
 meson.build                       | 85 ++++++++++++++++++++-------------------
 src/gallium/auxiliary/meson.build |  2 +-
 src/glx/apple/meson.build         |  2 +-
 src/glx/meson.build               |  2 +-
 4 files changed, 46 insertions(+), 45 deletions(-)

diff --git a/meson.build b/meson.build
index f210eeb2530..0d195b1aba1 100644
--- a/meson.build
+++ b/meson.build
@@ -230,7 +230,7 @@ if with_gallium_tegra and not with_gallium_nouveau
   error('tegra driver requires nouveau driver')
 endif
 
-dep_libdrm_intel = []
+dep_libdrm_intel = declare_dependency()
 if with_dri_i915 or with_gallium_i915
   dep_libdrm_intel = dependency('libdrm_intel', version : '>= 2.4.75')
 endif
@@ -427,7 +427,7 @@ elif _vdpau == 'auto'
   _vdpau = 'true'
 endif
 with_gallium_vdpau = _vdpau == 'true'
-dep_vdpau = []
+dep_vdpau = declare_dependency()
 if with_gallium_vdpau
   dep_vdpau = dependency('vdpau', version : '>= 1.1')
   dep_vdpau = declare_dependency(
@@ -466,7 +466,7 @@ elif _xvmc == 'auto'
   _xvmc = 'true'
 endif
 with_gallium_xvmc = _xvmc == 'true'
-dep_xvmc = []
+dep_xvmc = declare_dependency()
 if with_gallium_xvmc
   dep_xvmc = dependency('xvmc', version : '>= 1.0.6')
 endif
@@ -496,7 +496,8 @@ elif not (with_gallium_r600 or with_gallium_radeonsi or with_gallium_nouveau)
     error('OMX state tracker requires at least one of the following gallium drivers: r600, radeonsi, nouveau.')
   endif
 endif
-dep_omx = []
+with_gallium_omx = _omx
+dep_omx = declare_dependency()
 dep_omx_other = []
 if ['auto', 'bellagio'].contains(_omx)
   dep_omx = dependency(
@@ -584,7 +585,7 @@ elif _va == 'auto'
   _va = 'true'
 endif
 with_gallium_va = _va == 'true'
-dep_va = []
+dep_va = declare_dependency()
 if with_gallium_va
   dep_va = dependency('libva', version : '>= 0.38.0')
   dep_va_headers = declare_dependency(
@@ -643,7 +644,7 @@ if _opencl != 'disabled'
   with_gallium_opencl = true
   with_opencl_icd = _opencl == 'icd'
 else
-  dep_clc = []
+  dep_clc = declare_dependency()
   with_gallium_opencl = false
   with_gallium_icd = false
 endif
@@ -981,7 +982,7 @@ endif
 
 # check for dl support
 if cc.has_function('dlopen')
-  dep_dl = []
+  dep_dl = declare_dependency()
 else
   dep_dl = cc.find_library('dl')
 endif
@@ -1000,7 +1001,7 @@ endif
 
 # Determine whether or not the rt library is needed for time functions
 if cc.has_function('clock_gettime')
-  dep_clock = []
+  dep_clock = declare_dependency()
 else
   dep_clock = cc.find_library('rt')
 endif
@@ -1028,18 +1029,18 @@ if with_amd_vk or with_gallium_radeonsi or with_gallium_r600 or with_gallium_ope
     dep_elf = cc.find_library('elf')
   endif
 else
-  dep_elf = []
+  dep_elf = declare_dependency()
 endif
 dep_expat = dependency('expat')
 # this only exists on linux so either this is linux and it will be found, or
 # its not linux and and wont
 dep_m = cc.find_library('m', required : false)
 
-dep_libdrm_amdgpu = []
-dep_libdrm_radeon = []
-dep_libdrm_nouveau = []
-dep_libdrm_etnaviv = []
-dep_libdrm_freedreno = []
+dep_libdrm_amdgpu = declare_dependency()
+dep_libdrm_radeon = declare_dependency()
+dep_libdrm_nouveau = declare_dependency()
+dep_libdrm_etnaviv = declare_dependency()
+dep_libdrm_freedreno = declare_dependency()
 if with_amd_vk or with_gallium_radeonsi
   dep_libdrm_amdgpu = dependency('libdrm_amdgpu', version : '>= 2.4.91')
 endif
@@ -1091,7 +1092,7 @@ elif _llvm == 'true'
   dep_llvm = dependency('llvm', version : _llvm_version, modules : llvm_modules)
   with_llvm = true
 else
-  dep_llvm = []
+  dep_llvm = declare_dependency()
   with_llvm = false
 endif
 if with_llvm
@@ -1121,7 +1122,7 @@ elif with_amd_vk or with_gallium_radeonsi or with_gallium_swr
   error('The following drivers require LLVM: Radv, RadeonSI, SWR. One of these is enabled, but LLVM is disabled.')
 endif
 
-dep_glvnd = []
+dep_glvnd = declare_dependency()
 if with_glvnd
   dep_glvnd = dependency('libglvnd', version : '>= 0.2.0')
   pre_args += '-DUSE_LIBGLVND=1'
@@ -1133,7 +1134,7 @@ if with_valgrind != 'false'
     pre_args += '-DHAVE_VALGRIND'
   endif
 else
-  dep_valgrind = []
+  dep_valgrind = declare_dependency()
 endif
 
 # pthread stubs. Lets not and say we didn't
@@ -1141,7 +1142,7 @@ endif
 prog_bison = find_program('bison', required : with_any_opengl)
 prog_flex = find_program('flex', required : with_any_opengl)
 
-dep_selinux = []
+dep_selinux = declare_dependency()
 if get_option('selinux')
   dep_selinux = dependency('libselinux')
   pre_args += '-DMESA_SELINUX'
@@ -1155,7 +1156,7 @@ if with_libunwind != 'false'
     pre_args += '-DHAVE_LIBUNWIND'
   endif
 else
-  dep_unwind = []
+  dep_unwind = declare_dependency()
 endif
 
 # TODO: gallium-hud
@@ -1194,29 +1195,29 @@ if with_platform_wayland
   pre_args += ['-DHAVE_WAYLAND_PLATFORM', '-DWL_HIDE_DEPRECATED']
 else
   prog_wl_scanner = []
-  dep_wl_protocols = []
-  dep_wayland_client = []
-  dep_wayland_server = []
+  dep_wl_protocols = declare_dependency()
+  dep_wayland_client = declare_dependency()
+  dep_wayland_server = declare_dependency()
   wayland_dmabuf_xml = ''
 endif
 
-dep_x11 = []
-dep_xext = []
-dep_xdamage = []
-dep_xfixes = []
-dep_x11_xcb = []
-dep_xcb = []
-dep_xcb_glx = []
-dep_xcb_dri2 = []
-dep_xcb_dri3 = []
-dep_dri2proto = []
-dep_glproto = []
-dep_xxf86vm = []
-dep_xcb_dri3 = []
-dep_xcb_present = []
-dep_xcb_sync = []
-dep_xcb_xfixes = []
-dep_xshmfence = []
+dep_x11 = declare_dependency()
+dep_xext = declare_dependency()
+dep_xdamage = declare_dependency()
+dep_xfixes = declare_dependency()
+dep_x11_xcb = declare_dependency()
+dep_xcb = declare_dependency()
+dep_xcb_glx = declare_dependency()
+dep_xcb_dri2 = declare_dependency()
+dep_xcb_dri3 = declare_dependency()
+dep_dri2proto = declare_dependency()
+dep_glproto = declare_dependency()
+dep_xxf86vm = declare_dependency()
+dep_xcb_dri3 = declare_dependency()
+dep_xcb_present = declare_dependency()
+dep_xcb_sync = declare_dependency()
+dep_xcb_xfixes = declare_dependency()
+dep_xshmfence = declare_dependency()
 if with_platform_x11
   if with_glx == 'xlib' or with_glx == 'gallium-xlib'
     dep_x11 = dependency('x11')
@@ -1276,7 +1277,7 @@ if _sensors != 'false'
     pre_args += '-DHAVE_LIBSENSORS=1'
   endif
 else
-  dep_lmsensors = []
+  dep_lmsensors = declare_dependency()
 endif
 
 # TODO: gallium tests
@@ -1311,7 +1312,7 @@ gl_priv_reqs = [
 if dep_libdrm.found()
   gl_priv_reqs += 'libdrm >= 2.4.75'
 endif
-if dep_xxf86vm != [] and dep_xxf86vm.found()
+if dep_xxf86vm.found()
   gl_priv_reqs += 'xxf86vm'
 endif
 if with_dri_platform == 'drm'
@@ -1325,7 +1326,7 @@ endif
 if dep_m.found()
   gl_priv_libs += '-lm'
 endif
-if dep_dl != [] and dep_dl.found()
+if dep_dl.found()
   gl_priv_libs += '-ldl'
 endif
 
diff --git a/src/gallium/auxiliary/meson.build b/src/gallium/auxiliary/meson.build
index 5908f9c4309..0108b0e7567 100644
--- a/src/gallium/auxiliary/meson.build
+++ b/src/gallium/auxiliary/meson.build
@@ -339,7 +339,7 @@ files_libgallium = files(
   'nir/tgsi_to_nir.h',
 )
 
-if dep_libdrm != [] and dep_libdrm.found()
+if dep_libdrm.found()
   files_libgallium += files(
     'renderonly/renderonly.c',
     'renderonly/renderonly.h',
diff --git a/src/glx/apple/meson.build b/src/glx/apple/meson.build
index 2d1014da0f8..b53e0711f1a 100644
--- a/src/glx/apple/meson.build
+++ b/src/glx/apple/meson.build
@@ -46,7 +46,7 @@ files_libappleglx = files(
   'glx_empty.c',
 )
 
-dep_xplugin = []
+dep_xplugin = declare_dependency()
 if with_dri_platform == 'apple'
   dep_xplugin = meson.get_compiler('c').find_library('Xplugin')
 endif
diff --git a/src/glx/meson.build b/src/glx/meson.build
index 7ac46ac0662..90ab552ac4d 100644
--- a/src/glx/meson.build
+++ b/src/glx/meson.build
@@ -137,7 +137,7 @@ gl_lib_cargs = [
   '-DDEFAULT_DRIVER_DIR="@0@"'.format(dri_search_path),
 ]
 
-if dep_xxf86vm != [] and dep_xxf86vm.found()
+if dep_xxf86vm.found()
   gl_lib_cargs += '-DHAVE_XF86VIDMODE'
 endif
 
-- 
2.16.2



More information about the mesa-dev mailing list