1project('libva-utils', 'c', 'cpp', 2 version : '2.21.0', 3 default_options : [ 4 'warning_level=2', 5 'c_std=gnu99', 6 'default_library=static', 7 ], 8 license : 'MIT', 9 meson_version : '>= 0.42.0') 10 11c = meson.get_compiler('c') 12 13threads = dependency('threads') 14 15libva_dep = dependency('libva', version: '>= 1.1.0') 16 17libva_utils_flags = [ '-Wno-unused-parameter', 18 '-Wno-sign-compare' ] 19 20backends = '' 21 22# DRM 23use_drm = false 24drm_deps=[] 25if get_option('drm') != 'false' 26 require_drm = get_option('drm') == 'true' 27 drm_deps = [ 28 dependency('libva-drm', version: libva_dep.version(), required: require_drm), 29 dependency('libdrm', required: require_drm), 30 ] 31 use_drm = true 32 foreach d : drm_deps 33 if not d.found() 34 use_drm = false 35 endif 36 endforeach 37 if use_drm 38 backends += ' drm' 39 libva_utils_flags += [ '-DHAVE_VA_DRM=1' ] 40 endif 41endif 42 43# X11 44use_x11 = false 45if get_option('x11') != 'false' 46 require_x11 = get_option('x11') == 'true' 47 x11_deps = [ 48 dependency('x11', required: require_x11), 49 dependency('libva-x11', version: libva_dep.version(), required: require_x11), 50 ] 51 use_x11 = true 52 foreach d : x11_deps 53 if not d.found() 54 use_x11 = false 55 endif 56 endforeach 57 if use_x11 58 backends += ' x11' 59 libva_utils_flags += [ '-DHAVE_VA_X11=1' ] 60 endif 61endif 62 63# WAYLAND 64use_wayland = false 65if get_option('wayland') != 'false' 66 require_wayland = get_option('wayland') == 'true' 67 wayland_deps = [ 68 dependency('wayland-client', version: '>= 1.0.0', required: require_wayland), 69 dependency('libva-wayland', version: libva_dep.version(), required: require_wayland), 70 ] 71 use_wayland = true 72 foreach d : wayland_deps 73 if not d.found() 74 use_wayland = false 75 endif 76 endforeach 77 if use_wayland 78 backends += ' wayland' 79 libva_utils_flags += [ '-DHAVE_VA_WAYLAND=1' ] 80 endif 81endif 82 83# WIN32 84use_win32 = false 85if get_option('win32') != 'false' 86 require_win32 = get_option('win32') == 'true' 87 use_win32 = dependency('libva-win32', version: libva_dep.version(), required: require_win32).found() 88 if use_win32 89 libva_utils_flags = [ '-DHAVE_VA_WIN32=1', '-DNOMINMAX'] 90 dep_dxheaders = dependency('directx-headers', required : false) 91 if not dep_dxheaders.found() 92 dep_dxheaders = dependency('DirectX-Headers', 93 version : '>= v1.0.2', 94 fallback : ['DirectX-Headers', 'dep_dxheaders'], 95 required : use_win32 96 ) 97 endif 98 endif 99endif 100 101add_project_arguments(libva_utils_flags, 102 language: ['c', 'cpp']) 103 104if use_win32 105 subdir('getopt') 106 win32_deps = [ dependency('libva-win32', required: require_win32), idep_getopt, dep_dxheaders] 107endif 108 109subdir('common') # Uses win32_deps 110subdir('vainfo') 111 112if not use_win32 113 subdir('decode') 114 subdir('encode') 115 subdir('putsurface') 116 subdir('videoprocess') 117 subdir('vendor/intel') 118 subdir('vendor/intel/sfcsample') 119endif 120 121if get_option('tests') 122 subdir('test') 123endif 124 125if meson.version().version_compare('>= 0.53') 126 summary({ 127 'Libva VA-API version' : libva_dep.version(), 128 'Installation prefix' : get_option('prefix'), 129 'Extra window systems' : backends, 130 'Enable Unit-tests': get_option('tests') 131 }, bool_yn: true) 132endif 133