mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-20 13:50:11 +01:00
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 <dylan.c.baker@intel.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
This commit is contained in:
parent
81ed629b38
commit
b5f92b6fd4
4 changed files with 49 additions and 46 deletions
89
meson.build
89
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
|
||||
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ files_libappleglx = files(
|
|||
'glx_empty.c',
|
||||
)
|
||||
|
||||
dep_xplugin = []
|
||||
dep_xplugin = null_dep
|
||||
if with_dri_platform == 'apple'
|
||||
dep_xplugin = meson.get_compiler('c').find_library('Xplugin')
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue