File: meson.build

package info (click to toggle)
gst-plugins-bad1.0 1.26.4-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 69,744 kB
  • sloc: ansic: 723,080; cpp: 277,142; objc: 3,556; xml: 3,351; sh: 1,035; python: 473; makefile: 175; java: 75
file content (103 lines) | stat: -rw-r--r-- 2,481 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
vulkan_sources = [
  'gstvulkan.c',
  'gstvulkanelement.c',
  'vkdownload.c',
  'vkdeviceprovider.c',
  'vksink.c',
  'vkupload.c',
]

vulkan_headers = [
  'gstvulkanelements.h',
  'vkcolorconvert.h',
  'vkdeviceprovider.h',
  'vkdownload.h',
  'vkh264dec.h',
  'vkh265dec.h',
  'vkimageidentity.h',
  'vkoverlaycompositor.h',
  'vkshaderspv.h',
  'vksink.h',
  'vkupload.h',
  'vkviewconvert.h',
]

glsc_sources = [
  'vkcolorconvert.c',
  'vkimageidentity.c',
  'vkshaderspv.c',
  'vkviewconvert.c',
  'vkoverlaycompositor.c',
]

video_sources = [
  'vkh264dec.c',
  'vkh265dec.c',
]

doc_sources = []
foreach s: vulkan_sources + glsc_sources + video_sources + vulkan_headers
  doc_sources += meson.current_source_dir() / s
endforeach

plugin_sources += {
  'vulkan': pathsep.join(doc_sources)
}

if get_option('vulkan').disabled()
  subdir_done()
endif

if not gstvulkan_dep.found()
  if get_option('vulkan').enabled()
    error('GStreamer Vulkan plugin required via options, but needed dependencies not found.')
  else
    subdir_done()
  endif
endif

extra_deps = []
extra_args = []

vulkan_plugin_enums = []

glslc = find_program('glslc', required: false)
glslang = find_program('glslang', required: false)
if not glslc.found() and not glslang.found()
  if get_option('vulkan').enabled()
    error('GStreamer Vulkan plugin required via options, but glslc or glslang was not found.')
  else
    subdir_done()
  endif
  vulkan_compiled_shader_sources = []
else
  extra_args += ['-DHAVE_GLSLC']
  subdir('shaders')

  vulkan_sources += glsc_sources
  vulkan_plugin_enum_headers = files(
    'vkviewconvert.h',
  )
  vulkan_plugin_enums += gnome.mkenums_simple('gstvulkan-plugins-enumtypes',
      sources : vulkan_plugin_enum_headers,
      body_prefix : '#ifdef HAVE_CONFIG_H\n#include "config.h"\n#endif',
      header_prefix : '#include <gst/gst.h>')
endif

if vulkan_conf.get('GST_VULKAN_HAVE_VIDEO_EXTENSIONS') == 1
  vulkan_sources += video_sources
  extra_deps += gstcodecs_dep
  extra_args += ['-DGST_USE_UNSTABLE_API']
endif

gstvulkan_plugin = library('gstvulkan',
  vulkan_sources, vulkan_compiled_shader_sources, vulkan_plugin_enums,
  c_args : gst_plugins_bad_args + extra_args,
  objc_args : gst_plugins_bad_args,
  link_args : noseh_link_args,
  include_directories : [configinc],
  dependencies : [gstvideo_dep, gstbase_dep, gstvulkan_dep, vulkan_dep, gio_dep] + extra_deps,
  install : true,
  install_dir : plugins_install_dir,
)
plugins += [gstvulkan_plugin]