summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDudemanguy <random342@airmail.cc>2022-08-12 13:02:41 -0500
committerDudemanguy <random342@airmail.cc>2022-08-15 14:14:44 +0000
commit686027f9b2d829f769108dbfd58e60de28ce849f (patch)
tree9d4bfa181f3286e3e004ef43d0987609e960e92d
parent484f1d7adc01476613496176e87f6b4d41b4f0ea (diff)
downloadmpv-686027f9b2d829f769108dbfd58e60de28ce849f.tar.bz2
mpv-686027f9b2d829f769108dbfd58e60de28ce849f.tar.xz
meson: reduce dictionary usage
The build was a bit overzealous with using dictionaries. These are fine for when the feature checking is more complicated, but there's no point in having them for the simplier things. This also eliminates the usage of the 'name' key completely.
-rw-r--r--meson.build159
1 files changed, 61 insertions, 98 deletions
diff --git a/meson.build b/meson.build
index 682d7cf88e..940a174021 100644
--- a/meson.build
+++ b/meson.build
@@ -15,17 +15,13 @@ build_root = meson.project_build_root()
source_root = meson.project_source_root()
python = find_program('python3')
-avutil = dependency('libavutil', version: '>= 56.12.100')
-
-ffmpeg = {
- 'name': 'ffmpeg',
- 'deps': [avutil,
- dependency('libavcodec', version: '>= 58.12.100'),
- dependency('libavformat', version: '>= 58.9.100'),
- dependency('libswscale', version: '>= 5.0.101'),
- dependency('libavfilter', version: '>= 7.14.100'),
- dependency('libswresample', version: '>= 3.0.100')],
-}
+# ffmpeg
+libavcodec = dependency('libavcodec', version: '>= 58.12.100')
+libavfilter = dependency('libavfilter', version: '>= 7.14.100')
+libavformat = dependency('libavformat', version: '>= 58.9.100')
+libavutil = dependency('libavutil', version: '>= 56.12.100')
+libswresample = dependency('libswresample', version: '>= 3.0.100')
+libswscale = dependency('libswscale', version: '>= 5.0.101')
libass = dependency('libass', version: '>= 0.12.2')
pthreads = dependency('threads')
@@ -33,10 +29,15 @@ pthreads = dependency('threads')
# the dependency order of libass -> ffmpeg is necessary due to
# static linking symbol resolution between fontconfig and MinGW
dependencies = [libass,
- ffmpeg['deps'],
+ libavcodec,
+ libavfilter,
+ libavformat,
+ libavutil,
+ libswresample,
+ libswscale,
pthreads]
-features = [ffmpeg['name'], libass.name(), pthreads.name()]
+features = ['ffmpeg', libass.name(), pthreads.name()]
# Builtin options we'd like to add to features.
if get_option('optimization') != '0'
@@ -604,7 +605,7 @@ endif
# misc dependencies
-av_ch_layout_available = avutil.version().version_compare('>= 57.24.100')
+av_ch_layout_available = libavutil.version().version_compare('>= 57.24.100')
if av_ch_layout_available
features += 'av-channel-layout'
sources += files('audio/chmap_avchannel.c')
@@ -697,10 +698,7 @@ if librt.found()
features += 'librt'
endif
-lua = {
- 'name': 'lua',
- 'use': false,
-}
+lua = dependency('', required: false)
lua_opt = get_option('lua')
if lua_opt != 'disabled'
lua_version = [['lua', ['>=5.1.0', '<5.3.0']], # generic lua.pc
@@ -713,28 +711,26 @@ if lua_opt != 'disabled'
['lua-5.1', '>= 5.1.0']]
foreach version : lua_version
if lua_opt == 'auto' or lua_opt == 'enabled'
- lua += {'deps': dependency(version[0], version: version[1], required: false)}
- if lua['deps'].found()
- lua += {'use': true}
+ lua = dependency(version[0], version: version[1], required: false)
+ if lua.found()
break
endif
elif lua_opt == version[0]
- lua += {'deps': dependency(version[0], version: version[1])}
- if lua['deps'].found()
- lua += {'use': true}
+ lua = dependency(version[0], version: version[1])
+ if lua.found()
break
endif
endif
endforeach
endif
-if lua['use']
- dependencies += lua['deps']
- features += lua['deps'].name()
+if lua.found()
+ dependencies += lua
+ features += lua.name()
sources += files('player/lua.c')
subdir(join_paths('generated', 'player', 'lua'))
endif
-if not lua['use'] and lua_opt == 'enabled'
+if not lua.found() and lua_opt == 'enabled'
error('lua enabled but no suitable lua version could be found!')
endif
@@ -813,7 +809,6 @@ if alsa.found()
endif
audiounit = {
- 'name': 'audiounit',
'deps': dependency('appleframeworks', modules: ['Foundation', 'AudioToolbox'],
required: get_option('audiounit')),
'symbol': cc.has_header_symbol('AudioToolbox/AudioToolbox.h', 'kAudioUnitSubType_RemoteIO',
@@ -940,14 +935,13 @@ if direct3d
endif
drm = {
- 'name': 'drm',
'deps': dependency('libdrm', version: '>= 2.4.75', required: get_option('drm')),
'header': vt_h or consio_h,
}
drm += {'use': drm['deps'].found() and drm['header']}
if drm['use']
dependencies += drm['deps']
- features += drm['name']
+ features += 'drm'
sources += files('video/drmprime.c',
'video/out/drm_atomic.c',
'video/out/drm_common.c',
@@ -958,12 +952,9 @@ if drm['use']
endif
# This can be removed roughly when Debian 12 is released.
-drm_is_kms = {
- 'name': 'drm-is-kms',
- 'use': drm['use'] and drm['deps'].version().version_compare('>= 2.4.105')
-}
-if drm_is_kms['use']
- features += drm_is_kms['name']
+drm_is_kms = drm['use'] and drm['deps'].version().version_compare('>= 2.4.105')
+if drm_is_kms
+ features += 'drm_is_kms'
endif
gbm = dependency('gbm', version: '>=17.1.0', required: get_option('gbm'))
@@ -1037,7 +1028,6 @@ if d3d11.allowed()
endif
wayland = {
- 'name': 'wayland',
'deps': [dependency('wayland-client', version: '>= 1.15.0', required: get_option('wayland')),
dependency('wayland-cursor', version: '>= 1.15.0', required: get_option('wayland')),
dependency('wayland-protocols', version: '>= 1.15', required: get_option('wayland')),
@@ -1058,7 +1048,7 @@ if not wayland['header'] or not wayland['scanner'].found()
endif
if wayland['use']
- features += wayland['name']
+ features += 'wayland'
subdir(join_paths('generated', 'wayland'))
endif
@@ -1077,7 +1067,6 @@ x11_opt = get_option('x11').require(
error_message: 'the build is not GPL!',
)
x11 = {
- 'name': 'x11',
'deps': [dependency('x11', version: '>= 1.0.0', required: x11_opt),
dependency('xscrnsaver', version: '>= 1.0.0', required: x11_opt),
dependency('xext', version: '>= 1.0.0', required: x11_opt),
@@ -1095,7 +1084,7 @@ endforeach
if x11['use']
dependencies += x11['deps']
- features += x11['name']
+ features += 'x11'
sources += files('video/out/vo_x11.c',
'video/out/x11_common.c')
endif
@@ -1118,7 +1107,6 @@ endif
# OpenGL feature checking
gl = {
- 'name': 'gl',
'opt': get_option('gl').allowed(),
'use': false,
}
@@ -1212,14 +1200,13 @@ if d3d11.allowed() or egl_angle_win32.allowed()
endif
egl = {
- 'name': 'egl',
'deps': dependency('egl', version: '> 1.4.0', required: get_option('egl')),
'use': false,
}
egl += {'use': egl['deps'].found() and gl['opt']}
if egl['use']
dependencies += egl['deps']
- features += egl['name']
+ features += 'egl'
endif
egl_android_opt = get_option('egl-android').require(
@@ -1245,14 +1232,13 @@ if egl_drm.allowed()
endif
egl_wayland = {
- 'name': 'egl-wayland',
'deps': dependency('wayland-egl', version: '>= 9.0.0', required: get_option('egl-wayland')),
'use': false,
}
egl_wayland += {'use': egl['use'] and egl_wayland['deps'].found() and gl['opt'] and wayland['use']}
if egl_wayland['use']
dependencies += egl_wayland['deps']
- features += egl_wayland['name']
+ features += 'gl-wayland'
gl += {'use': true}
sources += files('video/out/opengl/context_wayland.c')
endif
@@ -1277,14 +1263,13 @@ if plain_gl.allowed()
endif
rpi = {
- 'name': 'rpi',
'deps': dependency('/opt/vc/lib/pkgconfig/brcmegl.pc', 'brcmegl', required: get_option('rpi')),
'use': false,
}
rpi += {'use': gl['opt'] and rpi['deps'].found()}
if rpi['use']
dependencies += rpi['deps']
- features += rpi['name']
+ features += 'rpi'
gl += {'use': true}
sources += files('video/out/opengl/context_rpi.c')
endif
@@ -1428,35 +1413,31 @@ if rpi_mmal.found()
endif
vaapi = {
- 'name': 'vaapi',
'deps': dependency('libva', version: '>= 1.1.0', required: get_option('vaapi')),
}
vaapi += {'use': vaapi['deps'].found() and libdl and
(x11['use'] or wayland['use'] or egl_drm.allowed())}
if vaapi['use']
dependencies += vaapi['deps']
- features += vaapi['name']
+ features += 'vaapi'
sources += files('video/filter/vf_vavpp.c',
'video/vaapi.c')
endif
vaapi_drm = {
- 'name': 'vaapi-drm',
'deps': dependency('libva-drm', version: '>= 1.1.0', required: get_option('vaapi-drm')),
}
vaapi_drm += {'use': vaapi['use'] and egl_drm.allowed() and vaapi_drm['deps'].found()}
if vaapi_drm['use']
- features += vaapi_drm['name']
+ features += 'vaapi-drm'
endif
vaapi_wayland = {
- 'name': 'vaapi-wayland',
'deps': dependency('libva-wayland', version: '>= 1.1.0', required: get_option('vaapi-wayland')),
}
vaapi_wayland += {'use': vaapi['use'] and egl_wayland['use'] and vaapi_wayland['deps'].found()}
-
if vaapi_wayland['use']
- features += vaapi_wayland['name']
+ features += 'vaapi-wayland'
endif
if vaapi_wayland['use'] and memfd_create
@@ -1465,62 +1446,44 @@ if vaapi_wayland['use'] and memfd_create
endif
vaapi_x11 = {
- 'name': 'vaapi-x11',
'deps': dependency('libva-x11', version: '>= 1.1.0', required: get_option('vaapi-x11')),
}
vaapi_x11 += {'use': vaapi['use'] and x11['use'] and vaapi_x11['deps'].found()}
if vaapi_x11['use']
dependencies += vaapi_x11['deps']
- features += vaapi_x11['name']
+ features += 'vaapi-x11'
sources += files('video/out/vo_vaapi.c')
endif
-vaapi_x_egl = {
- 'name': 'vaapi-x-egl',
- 'use': vaapi_x11['use'] and egl_x11.allowed(),
-}
-if vaapi_x_egl['use']
- features += vaapi_x_egl['name']
+vaapi_x_egl = vaapi_x11['use'] and egl_x11.allowed()
+if vaapi_x_egl
+ features += 'vaapi-x-egl'
endif
-vaapi_egl = {
- 'name': 'vaapi-egl',
- 'use': vaapi_x_egl['use'] or vaapi_wayland['use'] or vaapi_drm['use'],
-}
-if vaapi_egl['use']
+vaapi_egl = vaapi_x_egl or vaapi_wayland['use'] or vaapi_drm['use']
+if vaapi_egl
dependencies += [vaapi_wayland['deps'], vaapi_drm['deps']]
- features += vaapi_egl['name']
+ features += 'vaapi-egl'
endif
-vaapi_libplacebo = {
- 'name': 'vaapi-libplacebo',
- 'use': vaapi['use'] and libplacebo.found(),
-}
-if vaapi_libplacebo['use']
- features += vaapi_libplacebo['name']
+vaapi_libplacebo = vaapi['use'] and libplacebo.found()
+if vaapi_libplacebo
+ features += 'vaapi-libplacebo'
endif
-if vaapi_egl['use'] or vaapi_libplacebo['use']
+if vaapi_egl or vaapi_libplacebo
sources += files('video/out/hwdec/hwdec_vaapi.c')
endif
-dmabuf_interop_gl = {
- 'name': 'dmabuf-interop-gl',
- 'use': egl['use'] and drm['use']
-}
-
-if dmabuf_interop_gl['use']
- features += dmabuf_interop_gl['name']
+dmabuf_interop_gl = egl['use'] and drm['use']
+if dmabuf_interop_gl
+ features += 'dmabuf-interop-gl'
sources += files('video/out/hwdec/dmabuf_interop_gl.c')
endif
-dmabuf_interop_pl = {
- 'name': 'dmabuf-interop-pl',
- 'use': vaapi_libplacebo['use']
-}
-
-if dmabuf_interop_pl['use']
- features += dmabuf_interop_pl['name']
+dmabuf_interop_pl = vaapi_libplacebo
+if dmabuf_interop_pl
+ features += 'dmabuf-interop-pl'
sources += files('video/out/hwdec/dmabuf_interop_pl.c')
endif
@@ -1755,11 +1718,11 @@ conf_data.set10('HAVE_D3D_HWACCEL', d3d_hwaccel.allowed())
conf_data.set10('HAVE_D3D9_HWACCEL', d3d9_hwaccel.allowed())
conf_data.set10('HAVE_D3D11', d3d11.allowed())
conf_data.set10('HAVE_DIRECT3D', direct3d)
-conf_data.set10('HAVE_DMABUF_INTEROP_GL', dmabuf_interop_gl['use'])
-conf_data.set10('HAVE_DMABUF_INTEROP_PL', dmabuf_interop_pl['use'])
+conf_data.set10('HAVE_DMABUF_INTEROP_GL', dmabuf_interop_gl)
+conf_data.set10('HAVE_DMABUF_INTEROP_PL', dmabuf_interop_pl)
conf_data.set10('HAVE_DOS_PATHS', win32)
conf_data.set10('HAVE_DRM', drm['use'])
-conf_data.set10('HAVE_DRM_IS_KMS', drm_is_kms['use'])
+conf_data.set10('HAVE_DRM_IS_KMS', drm_is_kms)
conf_data.set10('HAVE_DVBIN', dvbin.allowed())
conf_data.set10('HAVE_DVDNAV', dvdnav.found() and dvdread.found())
conf_data.set10('HAVE_EGL', egl['use'])
@@ -1786,7 +1749,7 @@ conf_data.set10('HAVE_IOS_GL', ios_gl)
conf_data.set10('HAVE_JACK', jack.found())
conf_data.set10('HAVE_JAVASCRIPT', javascript.found())
conf_data.set10('HAVE_JPEG', jpeg.found())
-conf_data.set10('HAVE_JPEGXL', ffmpeg['deps'][1].version().version_compare('>= 59.27.100'))
+conf_data.set10('HAVE_JPEGXL', libavformat.version().version_compare('>= 59.27.100'))
conf_data.set10('HAVE_LCMS2', lcms2.found())
conf_data.set10('HAVE_LIBARCHIVE', libarchive.found())
conf_data.set10('HAVE_LIBAVDEVICE', libavdevice.found())
@@ -1794,7 +1757,7 @@ conf_data.set10('HAVE_LIBDL', libdl)
conf_data.set10('HAVE_LIBBLURAY', libbluray.found())
conf_data.set10('HAVE_LIBPLACEBO_NEXT', libplacebo_next)
conf_data.set10('HAVE_LINUX_FSTATFS', linux_fstatfs)
-conf_data.set10('HAVE_LUA', lua['use'])
+conf_data.set10('HAVE_LUA', lua.found())
conf_data.set10('HAVE_MACOS_10_11_FEATURES', macos_10_11_features.allowed())
conf_data.set10('HAVE_MACOS_10_14_FEATURES', macos_10_14_features.allowed())
conf_data.set10('HAVE_MACOS_COCOA_CB', macos_cocoa_cb.allowed())
@@ -1826,8 +1789,8 @@ conf_data.set10('HAVE_UCHARDET', uchardet.found())
conf_data.set10('HAVE_UWP', uwp.found())
conf_data.set10('HAVE_VAAPI', vaapi['use'])
conf_data.set10('HAVE_VAAPI_DRM', vaapi_drm['use'])
-conf_data.set10('HAVE_VAAPI_EGL', vaapi_egl['use'])
-conf_data.set10('HAVE_VAAPI_LIBPLACEBO', vaapi_libplacebo['use'])
+conf_data.set10('HAVE_VAAPI_EGL', vaapi_egl)
+conf_data.set10('HAVE_VAAPI_LIBPLACEBO', vaapi_libplacebo)
conf_data.set10('HAVE_VAAPI_WAYLAND', vaapi_wayland['use'])
conf_data.set10('HAVE_VAAPI_X11', vaapi_x11['use'])
conf_data.set10('HAVE_VAPOURSYNTH', vapoursynth.found() and vapoursynth_script.found())
@@ -1923,7 +1886,7 @@ summary({'d3d11': d3d11.allowed(),
'gpu-next': libplacebo_next,
'javascript': javascript.found(),
'libmpv': get_option('libmpv'),
- 'lua': lua['use'],
+ 'lua': lua.found(),
'opengl': GL.found() or egl['use'],
'vulkan': vulkan.found(),
'wayland': wayland['use'],