682da6d52dfe2f9da849267c8ec86cf54ae69103
[platform/upstream/gstreamer.git] / ext / vulkan / meson.build
1 if get_option('vulkan').disabled()
2   subdir_done()
3 endif
4
5 if 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
11 endif
12
13 glslc = find_program('glslc', required: get_option('vulkan'))
14 if not glslc.found()
15   subdir_done()
16 endif
17
18 subdir('shaders')
19
20 vulkan_sources = [
21   'gstvulkan.c',
22   'vkcolorconvert.c',
23   'vkdownload.c',
24   'vkdeviceprovider.c',
25   'vkelementutils.c',
26   'vkfullscreenquad.c',
27   'vkimageidentity.c',
28   'vksink.c',
29   'vkshader.c',
30   'vkupload.c',
31   'vkviewconvert.c',
32 ]
33
34 vulkan_plugin_enum_headers = [
35   'vkviewconvert.h',
36 ]
37
38 vulkan_plugin_enums = gnome.mkenums_simple('gstvulkan-plugins-enumtypes',
39     sources : vulkan_plugin_enum_headers,
40     body_prefix : '#ifdef HAVE_CONFIG_H\n#include "config.h"\n#endif',
41     header_prefix : '#include <gst/gst.h>')
42 vulkan_plugin_enumtypes_c = vulkan_plugin_enums[0]
43 vulkan_plugin_enumtypes_h = vulkan_plugin_enums[1]
44 vulkan_plugin_gen_sources = [vulkan_plugin_enumtypes_h]
45
46 gstvulkan_plugin = library('gstvulkan',
47   vulkan_sources, vulkan_compiled_shader_sources, vulkan_plugin_enumtypes_c, vulkan_plugin_enumtypes_h,
48   c_args : gst_plugins_bad_args,
49   objc_args : gst_plugins_bad_args,
50   link_args : noseh_link_args,
51   include_directories : [configinc],
52   dependencies : [gstvideo_dep, gstbase_dep, gstvulkan_dep, vulkan_dep],
53   install : true,
54   install_dir : plugins_install_dir,
55 )
56 pkgconfig.generate(gstvulkan_plugin, install_dir : plugins_pkgconfig_install_dir)
57 plugins += [gstvulkan_plugin]