summaryrefslogtreecommitdiffstats
path: root/meson.build
diff options
context:
space:
mode:
authorDylan Baker <[email protected]>2018-03-15 13:30:22 -0700
committerDylan Baker <[email protected]>2018-04-06 15:29:53 -0700
commitb5f92b6fd4e4ef0358fe464d951893de20048bf6 (patch)
treeb701b8208feac6431e752911020a6e2c93eeb656 /meson.build
parent81ed629b385af62bbac2d7975986ea7ad4ed2d1a (diff)
meson: fix warnings about comparing unlike types
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 `dependency('', required : false)` 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()`, such a dependency should never exist. 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, such as: meson.build:1337: WARNING: Trying to compare values of different types (DependencyHolder, list) using !=. v2: - Use dependency('', required : false) instead of declare_dependency(), the later will always report that it is found, which is not what we want. Signed-off-by: Dylan Baker <[email protected]> Reviewed-by: Caio Marcelo de Oliveira Filho <[email protected]>
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build89
1 files changed, 46 insertions, 43 deletions
diff --git a/meson.build b/meson.build
index ee2b4151e2f..7b01d0ab4b7 100644
--- a/meson.build
+++ b/meson.build
@@ -29,6 +29,8 @@ project(
default_options : ['buildtype=debugoptimized', 'c_std=c99', 'cpp_std=c++11']
)
+null_dep = dependency('', required : false)
+
system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'dragonfly', 'linux'].contains(host_machine.system())
# Arguments for the preprocessor, put these in a separate array from the C and
@@ -422,7 +424,7 @@ elif _vdpau == 'auto'
_vdpau = 'true'
endif
with_gallium_vdpau = _vdpau == 'true'
-dep_vdpau = []
+dep_vdpau = null_dep
if with_gallium_vdpau
dep_vdpau = dependency('vdpau', version : '>= 1.1')
dep_vdpau = declare_dependency(
@@ -461,7 +463,7 @@ elif _xvmc == 'auto'
_xvmc = 'true'
endif
with_gallium_xvmc = _xvmc == 'true'
-dep_xvmc = []
+dep_xvmc = null_dep
if with_gallium_xvmc
dep_xvmc = dependency('xvmc', version : '>= 1.0.6')
endif
@@ -491,7 +493,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 = null_dep
dep_omx_other = []
if ['auto', 'bellagio'].contains(_omx)
dep_omx = dependency(
@@ -579,7 +582,7 @@ elif _va == 'auto'
_va = 'true'
endif
with_gallium_va = _va == 'true'
-dep_va = []
+dep_va = null_dep
if with_gallium_va
dep_va = dependency('libva', version : '>= 0.38.0')
dep_va_headers = declare_dependency(
@@ -638,7 +641,7 @@ if _opencl != 'disabled'
with_gallium_opencl = true
with_opencl_icd = _opencl == 'icd'
else
- dep_clc = []
+ dep_clc = null_dep
with_gallium_opencl = false
with_gallium_icd = false
endif
@@ -831,7 +834,7 @@ else
endif
# Check for GCC style atomics
-dep_atomic = declare_dependency()
+dep_atomic = null_dep
if cc.compiles('int main() { int n; return __atomic_load_n(&n, __ATOMIC_ACQUIRE); }',
name : 'GCC atomic builtins')
@@ -976,7 +979,7 @@ endif
# check for dl support
if cc.has_function('dlopen')
- dep_dl = []
+ dep_dl = null_dep
else
dep_dl = cc.find_library('dl')
endif
@@ -995,7 +998,7 @@ endif
# Determine whether or not the rt library is needed for time functions
if cc.has_function('clock_gettime')
- dep_clock = []
+ dep_clock = null_dep
else
dep_clock = cc.find_library('rt')
endif
@@ -1013,7 +1016,7 @@ 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 = null_dep
endif
dep_expat = dependency('expat')
# this only exists on linux so either this is linux and it will be found, or
@@ -1024,12 +1027,12 @@ dep_m = cc.find_library('m', required : false)
# but we always want to use the same version for all libdrm modules. That means
# even if driver foo requires 2.4.0 and driver bar requires 2.4.3, if foo and
# bar are both on use 2.4.3 for both of them
-dep_libdrm_amdgpu = []
-dep_libdrm_radeon = []
-dep_libdrm_nouveau = []
-dep_libdrm_etnaviv = []
-dep_libdrm_freedreno = []
-dep_libdrm_intel = []
+dep_libdrm_amdgpu = null_dep
+dep_libdrm_radeon = null_dep
+dep_libdrm_nouveau = null_dep
+dep_libdrm_etnaviv = null_dep
+dep_libdrm_freedreno = null_dep
+dep_libdrm_intel = null_dep
_drm_amdgpu_ver = '2.4.91'
_drm_radeon_ver = '2.4.71'
@@ -1114,7 +1117,7 @@ elif _llvm == 'true'
dep_llvm = dependency('llvm', version : _llvm_version, modules : llvm_modules)
with_llvm = true
else
- dep_llvm = []
+ dep_llvm = null_dep
with_llvm = false
endif
if with_llvm
@@ -1144,7 +1147,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 = null_dep
if with_glvnd
dep_glvnd = dependency('libglvnd', version : '>= 0.2.0')
pre_args += '-DUSE_LIBGLVND=1'
@@ -1156,7 +1159,7 @@ if with_valgrind != 'false'
pre_args += '-DHAVE_VALGRIND'
endif
else
- dep_valgrind = []
+ dep_valgrind = null_dep
endif
# pthread stubs. Lets not and say we didn't
@@ -1164,7 +1167,7 @@ endif
prog_bison = find_program('bison', required : with_any_opengl)
prog_flex = find_program('flex', required : with_any_opengl)
-dep_selinux = []
+dep_selinux = null_dep
if get_option('selinux')
dep_selinux = dependency('libselinux')
pre_args += '-DMESA_SELINUX'
@@ -1178,7 +1181,7 @@ if with_libunwind != 'false'
pre_args += '-DHAVE_LIBUNWIND'
endif
else
- dep_unwind = []
+ dep_unwind = null_dep
endif
# TODO: gallium-hud
@@ -1217,29 +1220,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 = null_dep
+ dep_wayland_client = null_dep
+ dep_wayland_server = null_dep
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 = null_dep
+dep_xext = null_dep
+dep_xdamage = null_dep
+dep_xfixes = null_dep
+dep_x11_xcb = null_dep
+dep_xcb = null_dep
+dep_xcb_glx = null_dep
+dep_xcb_dri2 = null_dep
+dep_xcb_dri3 = null_dep
+dep_dri2proto = null_dep
+dep_glproto = null_dep
+dep_xxf86vm = null_dep
+dep_xcb_dri3 = null_dep
+dep_xcb_present = null_dep
+dep_xcb_sync = null_dep
+dep_xcb_xfixes = null_dep
+dep_xshmfence = null_dep
if with_platform_x11
if with_glx == 'xlib' or with_glx == 'gallium-xlib'
dep_x11 = dependency('x11')
@@ -1299,7 +1302,7 @@ if _sensors != 'false'
pre_args += '-DHAVE_LIBSENSORS=1'
endif
else
- dep_lmsensors = []
+ dep_lmsensors = null_dep
endif
# TODO: gallium tests
@@ -1334,7 +1337,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'
@@ -1348,7 +1351,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