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.ba...@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 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev