• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1if get_option('vulkan').disabled()
2  subdir_done()
3endif
4
5if not gstvulkan_dep.found()
6  if get_option('vulkan').enabled()
7    error('GStreamer Vulkan plugin required via options, but needed dependencies not found.')
8  else
9    subdir_done()
10  endif
11endif
12
13# Should already have checked for this
14assert(glslc.found(), 'Expected glslc to be available')
15
16subdir('shaders')
17
18vulkan_sources = [
19  'gstvulkan.c',
20  'gstvulkanelement.c',
21  'vkcolorconvert.c',
22  'vkdownload.c',
23  'vkdeviceprovider.c',
24  'vkimageidentity.c',
25  'vksink.c',
26  'vkupload.c',
27  'vkviewconvert.c',
28]
29
30vulkan_plugin_enum_headers = [
31  'vkviewconvert.h',
32]
33
34vulkan_plugin_enums = gnome.mkenums_simple('gstvulkan-plugins-enumtypes',
35    sources : vulkan_plugin_enum_headers,
36    body_prefix : '#ifdef HAVE_CONFIG_H\n#include "config.h"\n#endif',
37    header_prefix : '#include <gst/gst.h>')
38vulkan_plugin_enumtypes_c = vulkan_plugin_enums[0]
39vulkan_plugin_enumtypes_h = vulkan_plugin_enums[1]
40vulkan_plugin_gen_sources = [vulkan_plugin_enumtypes_h]
41
42gstvulkan_plugin = library('gstvulkan',
43  vulkan_sources, vulkan_compiled_shader_sources, vulkan_plugin_enumtypes_c, vulkan_plugin_enumtypes_h,
44  c_args : gst_plugins_bad_args,
45  objc_args : gst_plugins_bad_args,
46  link_args : noseh_link_args,
47  include_directories : [configinc],
48  dependencies : [gstvideo_dep, gstbase_dep, gstvulkan_dep, vulkan_dep],
49  install : true,
50  install_dir : plugins_install_dir,
51)
52pkgconfig.generate(gstvulkan_plugin, install_dir : plugins_pkgconfig_install_dir)
53plugins += [gstvulkan_plugin]
54