Workaround bindinate mistake in gst_element_factory_get_static_pad_templates return...
[platform/upstream/gstreamer.git] / meson.build
1 project('gstreamer-sharp', ['cs', 'c'], version: '1.12.0',
2     meson_version: '>0.42')
3
4
5 if host_machine.system() == 'osx'
6   lib_prefix=''
7   lib_suffix='.dylib'
8 else
9   lib_prefix='.so'
10   lib_suffix=''
11 endif
12
13 gtk_sharp_required_version = '>=3.22.6'
14
15 glib_sharp_dep = dependency('glib-sharp-3.0',
16     version: gtk_sharp_required_version,
17     fallback: ['gtk-sharp', 'glib_sharp_dep'])
18
19 gio_sharp_dep = dependency('gio-sharp-3.0',
20     version: gtk_sharp_required_version,
21     fallback: ['gtk-sharp', 'gio_sharp_dep'])
22
23 if glib_sharp_dep.type_name() == 'internal'
24   gtk_sharp = subproject('gtk-sharp')
25   gapi_fixup = gtk_sharp.get_variable('gapi_fixup')
26   gapi_codegen = gtk_sharp.get_variable('gapi_codegen')
27   glib_api_includes = gtk_sharp.get_variable('glib_api_includes')
28   gio_api_includes = gtk_sharp.get_variable('gio_api_includes')
29   has_gtk = gtk_sharp.get_variable('has_gtk')
30   if has_gtk
31     gtk_sharp_dep = [gtk_sharp.get_variable('gtk_sharp_dep'),
32       gtk_sharp.get_variable('atk_sharp_dep')]
33   else
34     gtk_sharp_dep = dependency('gtk-sharp-3.0', version: gtk_sharp_required_version,
35         required: false)
36   endif
37   codegen_dependencies = [gapi_codegen, gapi_fixup]
38   gapi_fixup = gapi_fixup.full_path()
39   gapi_codegen = gapi_codegen.full_path()
40 else
41   gtk_sharp_dep = dependency('gtk-sharp-3.0', version: gtk_sharp_required_version,
42       required: false)
43   has_gtk = gtk_sharp_dep.found()
44
45   gapi_fixup = find_program('gapi3-fixup')
46   gapi_codegen = find_program('gapi3-codegen')
47   pkgconfig = find_program('pkg-config')
48   glib_api_includes = run_command(pkgconfig, '--cflags', 'glib-sharp-3.0').stdout()
49   gio_api_includes = run_command(pkgconfig, '--cflags', 'gio-sharp-3.0').stdout()
50   codegen_dependencies = []
51 endif
52
53 gacutil = find_program('gacutil')
54 generate_api = find_program('generate_code.py')
55 gacutil_install = join_paths(meson.current_source_dir(), 'gacutil_install.py')
56
57 # TODO Handle monodoc
58
59 apiversion = '1.0'
60 gst_required_version = '>=@0@'.format(meson.project_version())
61 gst_deps = []
62
63 foreach dep: [
64   ['gstreamer', ['gstreamer', 'gst_dep']],
65   ['gstreamer-app', ['gst-plugins-base', 'app_dep']],
66   ['gstreamer-audio', ['gst-plugins-base', 'audio_dep']],
67   ['gstreamer-base', ['gst-plugins-base', 'audio_dep']],
68   ['gstreamer-controller', ['gstreamer', 'gst_controller_dep']],
69   ['gstreamer-fft', ['gst-plugins-base', 'fft_dep']],
70   ['gstreamer-net', ['gstreamer', 'gst_net_dep']],
71   ['gstreamer-pbutils', ['gst-plugins-base', 'pbutils_dep']],
72   ['gstreamer-riff', ['gst-plugins-base', 'riff_dep']],
73   ['gstreamer-rtp', ['gst-plugins-base', 'rtp_dep']],
74   ['gstreamer-rtsp', ['gst-plugins-base', 'rtsp_dep']],
75   ['gstreamer-sdp', ['gst-plugins-base', 'sdp_dep']],
76   ['gstreamer-tag', ['gst-plugins-base', 'tag_dep']],
77   ['gstreamer-video', ['gst-plugins-base', 'video_dep']],]
78
79   gst_deps += [dependency(dep.get(0) + '-' + apiversion, version: gst_required_version,
80     fallback: dep.get(1))]
81 endforeach
82
83 subdir('sources')
84 subdir('samples')
85
86 bindinate = find_program('bindinate', required: false)
87
88 if bindinate.found()
89   run_target('update-bindings',
90     command: [bindinate,
91       '--name=gstreamer', '--regenerate=true',
92       '--merge-with=GstApp-1.0,GstAudio-1.0,GstBase-1.0,GstController-1.0,GstFft-1.0,GstNet-1.0,GstPbutils-1.0,GstRiff-1.0,GstRtp-1.0,GstRtsp-1.0,GstSdp-1.0,GstTag-1.0,GstVideo-1.0',
93       '--gir=Gst-1.0']
94     )
95 endif