• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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