16 'gstcontrolbinding.c',
21 'gstdeviceprovider.c',
22 'gstdeviceproviderfactory.c',
23 'gstdynamictypefactory.c',
25 'gstelementfactory.c',
51 'gstregistrychunks.c',
54 'gststreamcollection.c',
69 'gsttypefindfactory.c',
92 'gstcontrolbinding.h',
97 'gstelementmetadata.h',
99 'gstdeviceprovider.h',
100 'gstdeviceproviderfactory.h',
101 'gstdynamictypefactory.h',
102 'gstelementfactory.h',
107 'gstdevicemonitor.h',
121 'gstpluginfeature.h',
128 'gststreamcollection.h',
139 'gsttracerfactory.h',
142 'gsttypefindfactory.h',
150 install_headers(gst_headers, subdir : 'gstreamer-1.0/gst')
152 if not get_option('disable_registry')
153 gst_registry = ['gstregistrybinary.c']
158 configure_file(input : 'gstconfig.h.in',
159 output : 'gstconfig.h',
160 install_dir : 'include/gstreamer-1.0/gst',
161 configuration : cdata)
162 configure_file(input : 'gstversion.h.in',
163 output : 'gstversion.h',
164 install_dir : 'include/gstreamer-1.0/gst',
165 configuration : cdata)
167 mkenums = find_program('build_mkenum.py')
168 glib_mkenums = find_program('glib-mkenums')
170 gstenum_h = custom_target('gstenum_h',
171 output : 'gstenumtypes.h',
174 install_dir : 'include/gstreamer-1.0/gst',
175 command : [mkenums, glib_mkenums, '@OUTPUT@', '@INPUT@'])
177 gstenum_c = custom_target('gstenum_c',
178 output : 'gstenumtypes.c',
180 depends : [gstenum_h],
181 command : [mkenums, glib_mkenums, '@OUTPUT@', '@INPUT@'])
186 libgst_c_args = gst_c_args + [
189 '-DG_LOG_DOMAIN=g_log_domain_gstreamer',
190 '-DGST_DISABLE_DEPRECATED',
193 # Make it possible to build both static and shared versions
194 # at the same time. By default use shared for unit tests etc.
195 # This choice is arbitrary.
196 if libtype != 'shared'
197 libgst_static = static_library('gstreamer-1.0', gst_sources,
198 gstenum_h, gstenum_c, grammar, parser, gst_registry,
199 c_args : [libgst_c_args],
200 include_directories : [configinc,
201 # HACK, change include paths in .y and .l in final version.
202 include_directories('parse')],
204 link_with : printf_lib,
205 dependencies : [gobject_dep, gmodule_dep, glib_dep, mathlib] + platform_deps,
207 libgst = libgst_static
210 # Make sure that subproject building gir files work
211 gst_incdirs = [configinc]
212 gst_gen_sources = [gstenum_h]
213 if libtype != 'static'
214 libgst_shared = shared_library('gstreamer-1.0', gst_sources,
215 gstenum_h, gstenum_c, grammar, parser, gst_registry,
216 version : libversion,
217 soversion : soversion,
218 c_args : libgst_c_args,
219 include_directories : [configinc,
220 # HACK, change include paths in .y and .l in final version.
221 include_directories('parse')],
222 link_with : printf_lib,
224 dependencies : [gobject_dep, gmodule_dep, glib_dep, mathlib] + platform_deps,
225 vs_module_defs: vs_module_defs_dir + 'libgstreamer.def',
227 libgst = libgst_shared
229 gst_gir_extra_args = gir_init_section + [ '--c-include=gst/gst.h' ]
230 if meson.is_subproject()
231 # FIXME: There must be a better way to do this
232 # Need to pass the include path to find gst/gst.h and gst/gstenumtypes.h (built)
233 gst_gir_extra_args += ['--cflags-begin',
234 '-I' + meson.current_source_dir() + '/..',
235 '-I' + meson.current_build_dir() + '/..',
239 gst_incdirs += [include_directories(meson.current_build_dir() + '/..')]
240 gst_gen_sources += [gnome.generate_gir(libgst_shared,
241 sources : gst_sources + gst_headers,
243 nsversion : apiversion,
244 identifier_prefix : 'Gst',
245 symbol_prefix : 'gst',
246 export_packages : 'gstreamer-1.0',
247 includes : ['GLib-2.0', 'GObject-2.0', 'GModule-2.0' ],
249 extra_args : gst_gir_extra_args,
254 gst_dep = declare_dependency(link_with : libgst,
255 include_directories : gst_incdirs,
256 dependencies : [glib_dep, gobject_dep, gmodule_dep],
257 # Everything that uses libgst needs this built to compile
258 sources : gst_gen_sources,