From 686027f9b2d829f769108dbfd58e60de28ce849f Mon Sep 17 00:00:00 2001 From: Dudemanguy Date: Fri, 12 Aug 2022 13:02:41 -0500 Subject: 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. --- meson.build | 159 +++++++++++++++++++++++------------------------------------- 1 file 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'], -- cgit v1.2.3