debug: Add a memory ringbuffer based debug logger
[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
166 version_cdata = configuration_data()
167 version_cdata.set('GST_VERSION_MAJOR', gst_version_major)
168 version_cdata.set('GST_VERSION_MINOR', gst_version_minor)
169 version_cdata.set('GST_VERSION_MICRO', gst_version_micro)
170 version_cdata.set('GST_VERSION_NANO', gst_version_nano)
171
172 gst_version_h = configure_file(input : 'gstversion.h.in',
173   output : 'gstversion.h',
174   install_dir : 'include/gstreamer-1.0/gst',
175   configuration : version_cdata)
176
177 gst_enums = gnome.mkenums('gstenumtypes',
178   sources : gst_headers,
179   h_template : 'gstenumtypes.h.template',
180   c_template : 'gstenumtypes.c.template',
181   install_header : true,
182   install_dir : join_paths(get_option('includedir'), 'gstreamer-1.0/gst'))
183
184 gstenum_h = gst_enums[1]
185 gstenum_c = gst_enums[0]
186
187
188 subdir('parse')
189 subdir('printf')
190
191 libgst_c_args = gst_c_args + [
192   '-D_GNU_SOURCE',
193   '-DGST_EXPORTS',
194   '-DG_LOG_DOMAIN=g_log_domain_gstreamer',
195   '-DGST_DISABLE_DEPRECATED',
196 ]
197
198 disable_tracer_hooks = get_option('disable_tracer_hooks')
199 if disable_tracer_hooks
200   libgst_c_args += ['-DGST_DISABLE_GST_TRACER_HOOKS']
201 endif
202
203 # Make it possible to build both static and shared versions
204 # at the same time. By default use shared for unit tests etc.
205 # This choice is arbitrary.
206 if libtype != 'shared'
207   libgst_static = static_library('gstreamer-1.0', gst_sources,
208     gstenum_h, gstenum_c, grammar, parser, gst_registry,
209     c_args : [libgst_c_args],
210     include_directories : [configinc,
211       # HACK, change include paths in .y and .l in final version.
212       include_directories('parse')],
213     install : true,
214     link_with : printf_lib,
215     dependencies : [gobject_dep, gmodule_dep, glib_dep, mathlib] + backtrace_deps  + platform_deps,
216   )
217   libgst = libgst_static
218 endif
219
220 # Make sure that subproject building gir files work
221 gst_incdirs = [configinc]
222 gst_gen_sources = [gstenum_h]
223 if libtype != 'static'
224   libgst_shared = shared_library('gstreamer-1.0', gst_sources,
225     gstenum_h, gstenum_c, grammar, parser, gst_registry,
226     version : libversion,
227     soversion : soversion,
228     c_args : libgst_c_args,
229     include_directories : [configinc,
230       # HACK, change include paths in .y and .l in final version.
231       include_directories('parse')],
232     link_with : printf_lib,
233     install : true,
234     dependencies : [gobject_dep, gmodule_dep, glib_dep, mathlib, dl_dep] + backtrace_deps
235                      + platform_deps,
236     vs_module_defs: vs_module_defs_dir + 'libgstreamer.def',
237   )
238   libgst = libgst_shared
239   if build_gir
240     gst_gir_extra_args = gir_init_section + [ '--c-include=gst/gst.h' ]
241     if meson.is_subproject()
242       # FIXME: There must be a better way to do this
243       # Need to pass the include path to find gst/gst.h and gst/gstenumtypes.h (built)
244       gst_gir_extra_args += ['--cflags-begin',
245           '-I' + meson.current_source_dir() + '/..',
246           '-I' + meson.current_build_dir() + '/..',
247           '--cflags-end']
248     endif
249
250     gst_incdirs += [configinc]
251     gst_gen_sources += [gnome.generate_gir(libgst_shared,
252       sources : gst_sources + gst_headers + gst_enums + [gst_version_h],
253       namespace : 'Gst',
254       nsversion : apiversion,
255       identifier_prefix : 'Gst',
256       symbol_prefix : 'gst',
257       export_packages : 'gstreamer-1.0',
258       includes : ['GLib-2.0', 'GObject-2.0', 'GModule-2.0' ],
259       install : true,
260       extra_args : gst_gir_extra_args,
261     )]
262   endif
263 endif
264
265 gst_dep = declare_dependency(link_with : libgst,
266   include_directories : gst_incdirs,
267   dependencies : [glib_dep, gobject_dep, gmodule_dep],
268   # Everything that uses libgst needs this built to compile
269   sources : gst_gen_sources,
270 )