15 'gstcontrolbinding.c',
20 'gstdeviceprovider.c',
21 'gstdeviceproviderfactory.c',
22 'gstdynamictypefactory.c',
24 'gstelementfactory.c',
50 'gstregistrychunks.c',
53 'gststreamcollection.c',
68 'gsttypefindfactory.c',
91 'gstcontrolbinding.h',
96 'gstelementmetadata.h',
98 'gstdeviceprovider.h',
99 'gstdeviceproviderfactory.h',
100 'gstdynamictypefactory.h',
101 'gstelementfactory.h',
106 'gstdevicemonitor.h',
120 'gstpluginfeature.h',
127 'gststreamcollection.h',
138 'gsttracerfactory.h',
141 'gsttypefindfactory.h',
149 install_headers(gst_headers, subdir : 'gstreamer-1.0/gst')
151 if not get_option('disable_registry')
152 gst_registry = ['gstregistrybinary.c']
157 configure_file(input : 'gstconfig.h.in',
158 output : 'gstconfig.h',
159 install_dir : 'include/gstreamer-1.0/gst',
160 configuration : cdata)
161 configure_file(input : 'gstversion.h.in',
162 output : 'gstversion.h',
163 install_dir : 'include/gstreamer-1.0/gst',
164 configuration : cdata)
166 gst_enums = gnome.mkenums('gstenumtypes',
167 sources : gst_headers,
168 h_template : 'gstenumtypes.h.template',
169 c_template : 'gstenumtypes.c.template',
170 install_header : true,
171 install_dir : join_paths(get_option('includedir'), 'gstreamer-1.0/gst'))
173 gstenum_h = gst_enums[0]
174 gstenum_c = gst_enums[1]
180 libgst_c_args = gst_c_args + [
183 '-DG_LOG_DOMAIN=g_log_domain_gstreamer',
184 '-DGST_DISABLE_DEPRECATED',
187 # Make it possible to build both static and shared versions
188 # at the same time. By default use shared for unit tests etc.
189 # This choice is arbitrary.
190 if libtype != 'shared'
191 libgst_static = static_library('gstreamer-1.0', gst_sources,
192 gstenum_h, gstenum_c, grammar, parser, gst_registry,
193 c_args : [libgst_c_args],
194 include_directories : [configinc,
195 # HACK, change include paths in .y and .l in final version.
196 include_directories('parse')],
198 link_with : printf_lib,
199 dependencies : [gobject_dep, gmodule_dep, glib_dep, mathlib, unwind_dep, dw_dep] + platform_deps,
201 libgst = libgst_static
204 # Make sure that subproject building gir files work
205 gst_incdirs = [configinc]
206 gst_gen_sources = [gstenum_h]
207 if libtype != 'static'
208 libgst_shared = shared_library('gstreamer-1.0', gst_sources,
209 gstenum_h, gstenum_c, grammar, parser, gst_registry,
210 version : libversion,
211 soversion : soversion,
212 c_args : libgst_c_args,
213 include_directories : [configinc,
214 # HACK, change include paths in .y and .l in final version.
215 include_directories('parse')],
216 link_with : printf_lib,
218 dependencies : [gobject_dep, gmodule_dep, glib_dep, mathlib, dl_dep,
219 unwind_dep, dw_dep] + platform_deps,
220 vs_module_defs: vs_module_defs_dir + 'libgstreamer.def',
222 libgst = libgst_shared
224 gst_gir_extra_args = gir_init_section + [ '--c-include=gst/gst.h' ]
225 if meson.is_subproject()
226 # FIXME: There must be a better way to do this
227 # Need to pass the include path to find gst/gst.h and gst/gstenumtypes.h (built)
228 gst_gir_extra_args += ['--cflags-begin',
229 '-I' + meson.current_source_dir() + '/..',
230 '-I' + meson.current_build_dir() + '/..',
234 gst_incdirs += [include_directories(meson.current_build_dir() + '/..')]
235 gst_gen_sources += [gnome.generate_gir(libgst_shared,
236 sources : gst_sources + gst_headers,
238 nsversion : apiversion,
239 identifier_prefix : 'Gst',
240 symbol_prefix : 'gst',
241 export_packages : 'gstreamer-1.0',
242 includes : ['GLib-2.0', 'GObject-2.0', 'GModule-2.0' ],
244 extra_args : gst_gir_extra_args,
249 gst_dep = declare_dependency(link_with : libgst,
250 include_directories : gst_incdirs,
251 dependencies : [glib_dep, gobject_dep, gmodule_dep],
252 # Everything that uses libgst needs this built to compile
253 sources : gst_gen_sources,