meson: add gst-ptp-helper
[platform/upstream/gstreamer.git] / gst / meson.build
1 gst_sources = [
2   'gst.c',
3   'gstobject.c',
4   'gstallocator.c',
5   'gstbin.c',
6   'gstbuffer.c',
7   'gstbufferlist.c',
8   'gstbufferpool.c',
9   'gstbus.c',
10   'gstcaps.c',
11   'gstcapsfeatures.c',
12   'gstchildproxy.c',
13   'gstclock.c',
14   'gstcontext.c',
15   'gstcontrolbinding.c',
16   'gstcontrolsource.c',
17   'gstdatetime.c',
18   'gstdebugutils.c',
19   'gstdevice.c',
20   'gstdeviceprovider.c',
21   'gstdeviceproviderfactory.c',
22   'gstdynamictypefactory.c',
23   'gstelement.c',
24   'gstelementfactory.c',
25   'gsterror.c',
26   'gstevent.c',
27   'gstformat.c',
28   'gstghostpad.c',
29   'gstdevicemonitor.c',
30   'gstinfo.c',
31   'gstiterator.c',
32   'gstatomicqueue.c',
33   'gstmessage.c',
34   'gstmeta.c',
35   'gstmemory.c',
36   'gstminiobject.c',
37   'gstpad.c',
38   'gstpadtemplate.c',
39   'gstparamspecs.c',
40   'gstpipeline.c',
41   'gstplugin.c',
42   'gstpluginfeature.c',
43   'gstpluginloader.c',
44   'gstpoll.c',
45   'gstpreset.c',
46   'gstprotection.c',
47   'gstquark.c',
48   'gstquery.c',
49   'gstregistry.c',
50   'gstregistrychunks.c',
51   'gstsample.c',
52   'gstsegment.c',
53   'gststreamcollection.c',
54   'gststreams.c',
55   'gststructure.c',
56   'gstsystemclock.c',
57   'gsttaglist.c',
58   'gsttagsetter.c',
59   'gsttask.c',
60   'gsttaskpool.c',
61   'gsttoc.c',
62   'gsttocsetter.c',
63   'gsttracer.c',
64   'gsttracerfactory.c',
65   'gsttracerrecord.c',
66   'gsttracerutils.c',
67   'gsttypefind.c',
68   'gsttypefindfactory.c',
69   'gsturi.c',
70   'gstutils.c',
71   'gstvalue.c',
72   'gstparse.c',
73 ]
74
75 gst_headers = [
76   'gst.h',
77   'glib-compat.h',
78   'gstobject.h',
79   'gstallocator.h',
80   'gstbin.h',
81   'gstbuffer.h',
82   'gstbufferlist.h',
83   'gstbufferpool.h',
84   'gstbus.h',
85   'gstcaps.h',
86   'gstcapsfeatures.h',
87   'gstchildproxy.h',
88   'gstclock.h',
89   'gstcompat.h',
90   'gstcontext.h',
91   'gstcontrolbinding.h',
92   'gstcontrolsource.h',
93   'gstdatetime.h',
94   'gstdebugutils.h',
95   'gstelement.h',
96   'gstelementmetadata.h',
97   'gstdevice.h',
98   'gstdeviceprovider.h',
99   'gstdeviceproviderfactory.h',
100   'gstdynamictypefactory.h',
101   'gstelementfactory.h',
102   'gsterror.h',
103   'gstevent.h',
104   'gstformat.h',
105   'gstghostpad.h',
106   'gstdevicemonitor.h',
107   'gstinfo.h',
108   'gstiterator.h',
109   'gstatomicqueue.h',
110   'gstmacros.h',
111   'gstmessage.h',
112   'gstmeta.h',
113   'gstmemory.h',
114   'gstminiobject.h',
115   'gstpad.h',
116   'gstpadtemplate.h',
117   'gstparamspecs.h',
118   'gstpipeline.h',
119   'gstplugin.h',
120   'gstpluginfeature.h',
121   'gstpoll.h',
122   'gstpreset.h',
123   'gstprotection.h',
124   'gstquery.h',
125   'gstsample.h',
126   'gstsegment.h',
127   'gststreamcollection.h',
128   'gststreams.h',
129   'gststructure.h',
130   'gstsystemclock.h',
131   'gsttaglist.h',
132   'gsttagsetter.h',
133   'gsttask.h',
134   'gsttaskpool.h',
135   'gsttoc.h',
136   'gsttocsetter.h',
137   'gsttracer.h',
138   'gsttracerfactory.h',
139   'gsttracerrecord.h',
140   'gsttypefind.h',
141   'gsttypefindfactory.h',
142   'gsturi.h',
143   'gstutils.h',
144   'gstvalue.h',
145   'gstregistry.h',
146   'gstparse.h',
147   'math-compat.h',
148 ]
149 install_headers(gst_headers, subdir : 'gstreamer-1.0/gst')
150
151 if not get_option('disable_registry')
152   gst_registry = ['gstregistrybinary.c']
153 else
154   gst_registry = []
155 endif
156
157 # Make copy so configure_file consumes the copy and we can
158 # still add to the original cdata later.
159 gst_cdata = cdata
160
161 configure_file(input : 'gstconfig.h.in',
162   output : 'gstconfig.h',
163   install_dir : 'include/gstreamer-1.0/gst',
164   configuration : gst_cdata)
165 gst_version_h = configure_file(input : 'gstversion.h.in',
166   output : 'gstversion.h',
167   install_dir : 'include/gstreamer-1.0/gst',
168   configuration : gst_cdata)
169
170 gst_enums = gnome.mkenums('gstenumtypes',
171   sources : gst_headers,
172   h_template : 'gstenumtypes.h.template',
173   c_template : 'gstenumtypes.c.template',
174   install_header : true,
175   install_dir : join_paths(get_option('includedir'), 'gstreamer-1.0/gst'))
176
177 gstenum_h = gst_enums[1]
178 gstenum_c = gst_enums[0]
179
180
181 subdir('parse')
182 subdir('printf')
183
184 libgst_c_args = gst_c_args + [
185   '-D_GNU_SOURCE',
186   '-DGST_EXPORTS',
187   '-DG_LOG_DOMAIN=g_log_domain_gstreamer',
188   '-DGST_DISABLE_DEPRECATED',
189 ]
190
191 # Make it possible to build both static and shared versions
192 # at the same time. By default use shared for unit tests etc.
193 # This choice is arbitrary.
194 if libtype != 'shared'
195   libgst_static = static_library('gstreamer-1.0', gst_sources,
196     gstenum_h, gstenum_c, grammar, parser, gst_registry,
197     c_args : [libgst_c_args],
198     include_directories : [configinc,
199       # HACK, change include paths in .y and .l in final version.
200       include_directories('parse')],
201     install : true,
202     link_with : printf_lib,
203     dependencies : [gobject_dep, gmodule_dep, glib_dep, mathlib] + backtrace_deps  + platform_deps,
204   )
205   libgst = libgst_static
206 endif
207
208 # Make sure that subproject building gir files work
209 gst_incdirs = [configinc]
210 gst_gen_sources = [gstenum_h]
211 if libtype != 'static'
212   libgst_shared = shared_library('gstreamer-1.0', gst_sources,
213     gstenum_h, gstenum_c, grammar, parser, gst_registry,
214     version : libversion,
215     soversion : soversion,
216     c_args : libgst_c_args,
217     include_directories : [configinc,
218       # HACK, change include paths in .y and .l in final version.
219       include_directories('parse')],
220     link_with : printf_lib,
221     install : true,
222     dependencies : [gobject_dep, gmodule_dep, glib_dep, mathlib, dl_dep] + backtrace_deps
223                      + platform_deps,
224     vs_module_defs: vs_module_defs_dir + 'libgstreamer.def',
225   )
226   libgst = libgst_shared
227   if build_gir
228     gst_gir_extra_args = gir_init_section + [ '--c-include=gst/gst.h' ]
229     if meson.is_subproject()
230       # FIXME: There must be a better way to do this
231       # Need to pass the include path to find gst/gst.h and gst/gstenumtypes.h (built)
232       gst_gir_extra_args += ['--cflags-begin',
233           '-I' + meson.current_source_dir() + '/..',
234           '-I' + meson.current_build_dir() + '/..',
235           '--cflags-end']
236     endif
237
238     gst_incdirs += [configinc]
239     gst_gen_sources += [gnome.generate_gir(libgst_shared,
240       sources : gst_sources + gst_headers + gst_enums + [gst_version_h],
241       namespace : 'Gst',
242       nsversion : apiversion,
243       identifier_prefix : 'Gst',
244       symbol_prefix : 'gst',
245       export_packages : 'gstreamer-1.0',
246       includes : ['GLib-2.0', 'GObject-2.0', 'GModule-2.0' ],
247       install : true,
248       extra_args : gst_gir_extra_args,
249     )]
250   endif
251 endif
252
253 gst_dep = declare_dependency(link_with : libgst,
254   include_directories : gst_incdirs,
255   dependencies : [glib_dep, gobject_dep, gmodule_dep],
256   # Everything that uses libgst needs this built to compile
257   sources : gst_gen_sources,
258 )