meson: Update option names to omit disable_ and with- prefixes
[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   'gstpromise.c',
52   'gstsample.c',
53   'gstsegment.c',
54   'gststreamcollection.c',
55   'gststreams.c',
56   'gststructure.c',
57   'gstsystemclock.c',
58   'gsttaglist.c',
59   'gsttagsetter.c',
60   'gsttask.c',
61   'gsttaskpool.c',
62   'gsttoc.c',
63   'gsttocsetter.c',
64   'gsttracer.c',
65   'gsttracerfactory.c',
66   'gsttracerrecord.c',
67   'gsttracerutils.c',
68   'gsttypefind.c',
69   'gsttypefindfactory.c',
70   'gsturi.c',
71   'gstutils.c',
72   'gstvalue.c',
73   'gstparse.c',
74 ]
75
76 gst_headers = [
77   'gst.h',
78   'glib-compat.h',
79   'gstobject.h',
80   'gstallocator.h',
81   'gstbin.h',
82   'gstbuffer.h',
83   'gstbufferlist.h',
84   'gstbufferpool.h',
85   'gstbus.h',
86   'gstcaps.h',
87   'gstcapsfeatures.h',
88   'gstchildproxy.h',
89   'gstclock.h',
90   'gstcompat.h',
91   'gstcontext.h',
92   'gstcontrolbinding.h',
93   'gstcontrolsource.h',
94   'gstdatetime.h',
95   'gstdebugutils.h',
96   'gstelement.h',
97   'gstelementmetadata.h',
98   'gstdevice.h',
99   'gstdeviceprovider.h',
100   'gstdeviceproviderfactory.h',
101   'gstdynamictypefactory.h',
102   'gstelementfactory.h',
103   'gsterror.h',
104   'gstevent.h',
105   'gstformat.h',
106   'gstghostpad.h',
107   'gstdevicemonitor.h',
108   'gstinfo.h',
109   'gstiterator.h',
110   'gstatomicqueue.h',
111   'gstmacros.h',
112   'gstmessage.h',
113   'gstmeta.h',
114   'gstmemory.h',
115   'gstminiobject.h',
116   'gstpad.h',
117   'gstpadtemplate.h',
118   'gstparamspecs.h',
119   'gstpipeline.h',
120   'gstplugin.h',
121   'gstpluginfeature.h',
122   'gstpoll.h',
123   'gstpreset.h',
124   'gstprotection.h',
125   'gstquery.h',
126   'gstpromise.h',
127   'gstsample.h',
128   'gstsegment.h',
129   'gststreamcollection.h',
130   'gststreams.h',
131   'gststructure.h',
132   'gstsystemclock.h',
133   'gsttaglist.h',
134   'gsttagsetter.h',
135   'gsttask.h',
136   'gsttaskpool.h',
137   'gsttoc.h',
138   'gsttocsetter.h',
139   'gsttracer.h',
140   'gsttracerfactory.h',
141   'gsttracerrecord.h',
142   'gsttypefind.h',
143   'gsttypefindfactory.h',
144   'gsturi.h',
145   'gstutils.h',
146   'gstvalue.h',
147   'gstregistry.h',
148   'gstparse.h',
149   'math-compat.h',
150 ]
151 install_headers(gst_headers, subdir : 'gstreamer-1.0/gst')
152
153 gst_registry = get_option('registry')
154 if gst_registry
155   gst_registry_sources = ['gstregistrybinary.c']
156 else
157   gst_registry_sources = []
158 endif
159
160 # Make copy so configure_file consumes the copy and we can
161 # still add to the original cdata later.
162 gst_cdata = cdata
163
164 if gst_debug
165   gst_cdata.set('GST_DISABLE_GST_DEBUG_DEFINE', '#undef GST_DISABLE_GST_DEBUG')
166 else
167   gst_cdata.set('GST_DISABLE_GST_DEBUG_DEFINE', '#define GST_DISABLE_GST_DEBUG 1')
168 endif
169
170 if gst_registry
171   gst_cdata.set('GST_DISABLE_REGISTRY_DEFINE', '#undef GST_DISABLE_REGISTRY')
172 else
173   gst_cdata.set('GST_DISABLE_REGISTRY_DEFINE', '#define GST_DISABLE_REGISTRY 1')
174 endif
175
176 # FIXME: add --disable-parse option? (but autotools doesn't seem to set this
177 # define properly at all either even though it does expose the option)
178 gst_cdata.set('GST_DISABLE_PARSE_DEFINE', '#undef GST_DISABLE_PARSE')
179
180 # FIXME: add --disable-plugin option?
181 gst_cdata.set('GST_DISABLE_PLUGIN_DEFINE', '#undef GST_DISABLE_PLUGIN')
182
183 configure_file(input : 'gstconfig.h.in',
184   output : 'gstconfig.h',
185   install_dir : 'include/gstreamer-1.0/gst',
186   configuration : gst_cdata)
187
188 version_cdata = configuration_data()
189 version_cdata.set('GST_VERSION_MAJOR', gst_version_major)
190 version_cdata.set('GST_VERSION_MINOR', gst_version_minor)
191 version_cdata.set('GST_VERSION_MICRO', gst_version_micro)
192 version_cdata.set('GST_VERSION_NANO', gst_version_nano)
193
194 gst_version_h = configure_file(input : 'gstversion.h.in',
195   output : 'gstversion.h',
196   install_dir : 'include/gstreamer-1.0/gst',
197   configuration : version_cdata)
198
199 gst_enums = gnome.mkenums_simple('gstenumtypes',
200   sources : gst_headers,
201   header_prefix : '#include <gst/gstconfig.h>',
202   body_prefix : '#include "gst/gst_private.h"\n#include <gst/gst.h>',
203   decorator : 'GST_API',
204   install_header : true,
205   install_dir : join_paths(get_option('includedir'), 'gstreamer-1.0/gst'))
206
207 gstenum_h = gst_enums[1]
208 gstenum_c = gst_enums[0]
209
210
211 subdir('parse')
212 subdir('printf')
213
214 libgst_c_args = gst_c_args + [
215   '-D_GNU_SOURCE',
216   '-DGST_EXPORTS',
217   '-DG_LOG_DOMAIN=g_log_domain_gstreamer',
218   '-DGST_DISABLE_DEPRECATED',
219 ]
220
221 tracer_hooks = get_option('tracer_hooks')
222 if not tracer_hooks
223   libgst_c_args += ['-DGST_DISABLE_GST_TRACER_HOOKS']
224 endif
225
226 # Make sure that subproject building gir files work
227 gst_incdirs = [configinc]
228 gst_gen_sources = [gstenum_h]
229 libgst = library('gstreamer-1.0', gst_sources,
230   gstenum_h, gstenum_c, grammar, parser, gst_registry_sources,
231   version : libversion,
232   soversion : soversion,
233   c_args : libgst_c_args,
234   include_directories : [configinc,
235     # HACK, change include paths in .y and .l in final version.
236     include_directories('parse')],
237   link_with : printf_lib,
238   install : true,
239   dependencies : [gobject_dep, gmodule_dep, glib_dep, mathlib, dl_dep] + backtrace_deps
240                    + platform_deps,
241 )
242
243 if build_gir
244   gst_gir_extra_args = gir_init_section + [ '--c-include=gst/gst.h' ]
245   if meson.is_subproject()
246     # FIXME: There must be a better way to do this
247     # Need to pass the include path to find gst/gst.h and gst/gstenumtypes.h (built)
248     gst_gir_extra_args += ['--cflags-begin',
249       '-I' + meson.current_source_dir() + '/..',
250       '-I' + meson.current_build_dir() + '/..',
251       '--cflags-end']
252   endif
253
254   gst_incdirs += [configinc]
255   gst_gen_sources += [gnome.generate_gir(libgst,
256     sources : gst_sources + gst_headers + gst_enums + [gst_version_h],
257     namespace : 'Gst',
258     nsversion : apiversion,
259     identifier_prefix : 'Gst',
260     symbol_prefix : 'gst',
261     export_packages : 'gstreamer-1.0',
262     includes : ['GLib-2.0', 'GObject-2.0', 'GModule-2.0' ],
263     install : true,
264     extra_args : gst_gir_extra_args,
265   )]
266 endif
267
268 gst_dep = declare_dependency(link_with : libgst,
269   include_directories : gst_incdirs,
270   dependencies : [glib_dep, gobject_dep, gmodule_dep],
271   # Everything that uses libgst needs this built to compile
272   sources : gst_gen_sources,
273 )