meson: Add feature options for all plugins
[platform/upstream/gst-plugins-good.git] / ext / gtk / meson.build
1 gtk_sources = [
2   'gstgtkbasesink.c',
3   'gstgtksink.c',
4   'gstgtkutils.c',
5   'gstplugin.c',
6   'gtkgstbasewidget.c',
7   'gtkgstwidget.c',
8 ]
9
10 gtk_defines = []
11 optional_deps = []
12
13 gtk_dep = dependency('gtk+-3.0', required : get_option('gtk3'))
14 if gtk_dep.found()
15   if build_gstgl and gstgl_dep.found() and gtk_dep.version().version_compare('>=3.15.0')
16     have_gtk3_gl_windowing = false
17
18     if gst_gl_have_window_x11 and gst_gl_have_platform_glx
19       # FIXME: automagic
20       gtk_x11_dep = dependency('gtk+-x11-3.0', required : false)
21       if gtk_x11_dep.found()
22         optional_deps += gtk_x11_dep
23         have_gtk3_gl_windowing = true
24       endif
25     endif
26
27     if gst_gl_have_window_wayland and gst_gl_have_platform_egl
28       # FIXME: automagic
29       gtk_wayland_dep = dependency('gtk+-wayland-3.0', required : false)
30       if gtk_wayland_dep.found()
31         optional_deps += gtk_wayland_dep
32         have_gtk3_gl_windowing = true
33       endif
34     endif
35
36     if have_gtk3_gl_windowing
37       gtk_sources += [
38         'gstgtkglsink.c',
39         'gtkgstglwidget.c',
40       ]
41       optional_deps += gstgl_dep
42       gtk_defines += ['-DGST_USE_UNSTABLE_API', '-DHAVE_GTK3_GL']
43     endif
44   endif
45
46   gstgtk = library('gstgtk',
47     gtk_sources,
48     c_args : gst_plugins_good_args + gtk_defines,
49     link_args : noseh_link_args,
50     include_directories : [configinc],
51     dependencies : [gtk_dep, gstvideo_dep, gstbase_dep, libm] + optional_deps,
52     install : true,
53     install_dir : plugins_install_dir,
54   )
55   pkgconfig.generate(gstgtk, install_dir : plugins_pkgconfig_install_dir)
56 endif
57