2016-08-12 14:55:17 +00:00
|
|
|
gst_sources = [
|
|
|
|
'gst.c',
|
|
|
|
'gstobject.c',
|
|
|
|
'gstallocator.c',
|
|
|
|
'gstbin.c',
|
|
|
|
'gstbuffer.c',
|
|
|
|
'gstbufferlist.c',
|
|
|
|
'gstbufferpool.c',
|
|
|
|
'gstbus.c',
|
|
|
|
'gstcaps.c',
|
|
|
|
'gstcapsfeatures.c',
|
|
|
|
'gstchildproxy.c',
|
|
|
|
'gstclock.c',
|
|
|
|
'gstcontext.c',
|
|
|
|
'gstcontrolbinding.c',
|
|
|
|
'gstcontrolsource.c',
|
|
|
|
'gstdatetime.c',
|
|
|
|
'gstdebugutils.c',
|
|
|
|
'gstdevice.c',
|
|
|
|
'gstdeviceprovider.c',
|
|
|
|
'gstdeviceproviderfactory.c',
|
2016-11-02 08:12:58 +00:00
|
|
|
'gstdynamictypefactory.c',
|
2016-08-12 14:55:17 +00:00
|
|
|
'gstelement.c',
|
|
|
|
'gstelementfactory.c',
|
|
|
|
'gsterror.c',
|
|
|
|
'gstevent.c',
|
|
|
|
'gstformat.c',
|
|
|
|
'gstghostpad.c',
|
|
|
|
'gstdevicemonitor.c',
|
|
|
|
'gstinfo.c',
|
|
|
|
'gstiterator.c',
|
|
|
|
'gstatomicqueue.c',
|
|
|
|
'gstmessage.c',
|
|
|
|
'gstmeta.c',
|
|
|
|
'gstmemory.c',
|
|
|
|
'gstminiobject.c',
|
|
|
|
'gstpad.c',
|
|
|
|
'gstpadtemplate.c',
|
|
|
|
'gstparamspecs.c',
|
|
|
|
'gstpipeline.c',
|
|
|
|
'gstplugin.c',
|
|
|
|
'gstpluginfeature.c',
|
|
|
|
'gstpluginloader.c',
|
|
|
|
'gstpoll.c',
|
|
|
|
'gstpreset.c',
|
|
|
|
'gstprotection.c',
|
|
|
|
'gstquark.c',
|
|
|
|
'gstquery.c',
|
|
|
|
'gstregistry.c',
|
|
|
|
'gstregistrychunks.c',
|
|
|
|
'gstsample.c',
|
|
|
|
'gstsegment.c',
|
|
|
|
'gststreamcollection.c',
|
|
|
|
'gststreams.c',
|
|
|
|
'gststructure.c',
|
|
|
|
'gstsystemclock.c',
|
|
|
|
'gsttaglist.c',
|
|
|
|
'gsttagsetter.c',
|
|
|
|
'gsttask.c',
|
|
|
|
'gsttaskpool.c',
|
|
|
|
'gsttoc.c',
|
|
|
|
'gsttocsetter.c',
|
|
|
|
'gsttracer.c',
|
|
|
|
'gsttracerfactory.c',
|
|
|
|
'gsttracerrecord.c',
|
|
|
|
'gsttracerutils.c',
|
|
|
|
'gsttypefind.c',
|
|
|
|
'gsttypefindfactory.c',
|
|
|
|
'gsturi.c',
|
|
|
|
'gstutils.c',
|
|
|
|
'gstvalue.c',
|
|
|
|
'gstparse.c',
|
|
|
|
]
|
|
|
|
|
|
|
|
gst_headers = [
|
|
|
|
'gst.h',
|
|
|
|
'glib-compat.h',
|
|
|
|
'gstobject.h',
|
|
|
|
'gstallocator.h',
|
|
|
|
'gstbin.h',
|
|
|
|
'gstbuffer.h',
|
|
|
|
'gstbufferlist.h',
|
|
|
|
'gstbufferpool.h',
|
|
|
|
'gstbus.h',
|
|
|
|
'gstcaps.h',
|
|
|
|
'gstcapsfeatures.h',
|
|
|
|
'gstchildproxy.h',
|
|
|
|
'gstclock.h',
|
|
|
|
'gstcompat.h',
|
|
|
|
'gstcontext.h',
|
|
|
|
'gstcontrolbinding.h',
|
|
|
|
'gstcontrolsource.h',
|
|
|
|
'gstdatetime.h',
|
|
|
|
'gstdebugutils.h',
|
|
|
|
'gstelement.h',
|
|
|
|
'gstelementmetadata.h',
|
|
|
|
'gstdevice.h',
|
|
|
|
'gstdeviceprovider.h',
|
|
|
|
'gstdeviceproviderfactory.h',
|
2016-11-02 08:04:01 +00:00
|
|
|
'gstdynamictypefactory.h',
|
2016-08-12 14:55:17 +00:00
|
|
|
'gstelementfactory.h',
|
|
|
|
'gsterror.h',
|
|
|
|
'gstevent.h',
|
|
|
|
'gstformat.h',
|
|
|
|
'gstghostpad.h',
|
|
|
|
'gstdevicemonitor.h',
|
|
|
|
'gstinfo.h',
|
|
|
|
'gstiterator.h',
|
|
|
|
'gstatomicqueue.h',
|
|
|
|
'gstmacros.h',
|
|
|
|
'gstmessage.h',
|
|
|
|
'gstmeta.h',
|
|
|
|
'gstmemory.h',
|
|
|
|
'gstminiobject.h',
|
|
|
|
'gstpad.h',
|
|
|
|
'gstpadtemplate.h',
|
|
|
|
'gstparamspecs.h',
|
|
|
|
'gstpipeline.h',
|
|
|
|
'gstplugin.h',
|
|
|
|
'gstpluginfeature.h',
|
|
|
|
'gstpoll.h',
|
|
|
|
'gstpreset.h',
|
|
|
|
'gstprotection.h',
|
|
|
|
'gstquery.h',
|
|
|
|
'gstsample.h',
|
|
|
|
'gstsegment.h',
|
|
|
|
'gststreamcollection.h',
|
|
|
|
'gststreams.h',
|
|
|
|
'gststructure.h',
|
|
|
|
'gstsystemclock.h',
|
|
|
|
'gsttaglist.h',
|
|
|
|
'gsttagsetter.h',
|
|
|
|
'gsttask.h',
|
|
|
|
'gsttaskpool.h',
|
|
|
|
'gsttoc.h',
|
|
|
|
'gsttocsetter.h',
|
|
|
|
'gsttracer.h',
|
|
|
|
'gsttracerfactory.h',
|
|
|
|
'gsttracerrecord.h',
|
|
|
|
'gsttypefind.h',
|
|
|
|
'gsttypefindfactory.h',
|
|
|
|
'gsturi.h',
|
|
|
|
'gstutils.h',
|
|
|
|
'gstvalue.h',
|
|
|
|
'gstregistry.h',
|
|
|
|
'gstparse.h',
|
|
|
|
'math-compat.h',
|
|
|
|
]
|
|
|
|
install_headers(gst_headers, subdir : 'gstreamer-1.0/gst')
|
|
|
|
|
|
|
|
if not get_option('disable_registry')
|
|
|
|
gst_registry = ['gstregistrybinary.c']
|
|
|
|
else
|
|
|
|
gst_registry = []
|
|
|
|
endif
|
|
|
|
|
|
|
|
configure_file(input : 'gstconfig.h.in',
|
|
|
|
output : 'gstconfig.h',
|
|
|
|
install_dir : 'include/gstreamer-1.0/gst',
|
|
|
|
configuration : cdata)
|
|
|
|
configure_file(input : 'gstversion.h.in',
|
|
|
|
output : 'gstversion.h',
|
|
|
|
install_dir : 'include/gstreamer-1.0/gst',
|
|
|
|
configuration : cdata)
|
|
|
|
|
|
|
|
mkenums = find_program('build_mkenum.py')
|
|
|
|
glib_mkenums = find_program('glib-mkenums')
|
|
|
|
|
|
|
|
gstenum_h = custom_target('gstenum_h',
|
|
|
|
output : 'gstenumtypes.h',
|
|
|
|
input : gst_headers,
|
|
|
|
install : true,
|
|
|
|
install_dir : 'include/gstreamer-1.0/gst',
|
|
|
|
command : [mkenums, glib_mkenums, '@OUTPUT@', '@INPUT@'])
|
|
|
|
|
|
|
|
gstenum_c = custom_target('gstenum_c',
|
|
|
|
output : 'gstenumtypes.c',
|
|
|
|
input : gst_headers,
|
|
|
|
depends : [gstenum_h],
|
|
|
|
command : [mkenums, glib_mkenums, '@OUTPUT@', '@INPUT@'])
|
|
|
|
|
|
|
|
subdir('parse')
|
|
|
|
subdir('printf')
|
|
|
|
|
|
|
|
libgst_c_args = gst_c_args + [
|
|
|
|
'-D_GNU_SOURCE',
|
|
|
|
'-DGST_EXPORTS',
|
|
|
|
'-DG_LOG_DOMAIN=g_log_domain_gstreamer',
|
|
|
|
'-DGST_DISABLE_DEPRECATED',
|
|
|
|
]
|
|
|
|
|
|
|
|
# Make it possible to build both static and shared versions
|
|
|
|
# at the same time. By default use shared for unit tests etc.
|
|
|
|
# This choice is arbitrary.
|
|
|
|
if libtype != 'shared'
|
|
|
|
libgst_static = static_library('gstreamer-1.0', gst_sources,
|
|
|
|
gstenum_h, gstenum_c, grammar, parser, gst_registry,
|
|
|
|
c_args : [libgst_c_args],
|
|
|
|
include_directories : [configinc,
|
|
|
|
# HACK, change include paths in .y and .l in final version.
|
|
|
|
include_directories('parse')],
|
|
|
|
install : true,
|
|
|
|
link_with : printf_lib,
|
2016-10-07 09:38:27 +00:00
|
|
|
dependencies : [gobject_dep, gmodule_dep, glib_dep, mathlib, unwind_dep, dw_dep] + platform_deps,
|
2016-08-12 14:55:17 +00:00
|
|
|
)
|
|
|
|
libgst = libgst_static
|
|
|
|
endif
|
|
|
|
|
2016-08-26 23:06:59 +00:00
|
|
|
# Make sure that subproject building gir files work
|
|
|
|
gst_incdirs = [configinc]
|
|
|
|
gst_gen_sources = [gstenum_h]
|
2016-08-12 14:55:17 +00:00
|
|
|
if libtype != 'static'
|
|
|
|
libgst_shared = shared_library('gstreamer-1.0', gst_sources,
|
|
|
|
gstenum_h, gstenum_c, grammar, parser, gst_registry,
|
|
|
|
version : libversion,
|
|
|
|
soversion : soversion,
|
|
|
|
c_args : libgst_c_args,
|
|
|
|
include_directories : [configinc,
|
|
|
|
# HACK, change include paths in .y and .l in final version.
|
|
|
|
include_directories('parse')],
|
|
|
|
link_with : printf_lib,
|
|
|
|
install : true,
|
2016-10-07 09:38:27 +00:00
|
|
|
dependencies : [gobject_dep, gmodule_dep, glib_dep, mathlib, unwind_dep, dw_dep] + platform_deps,
|
2016-08-12 14:55:17 +00:00
|
|
|
vs_module_defs: vs_module_defs_dir + 'libgstreamer.def',
|
|
|
|
)
|
|
|
|
libgst = libgst_shared
|
|
|
|
if build_gir
|
|
|
|
gst_gir_extra_args = gir_init_section + [ '--c-include=gst/gst.h' ]
|
|
|
|
if meson.is_subproject()
|
|
|
|
# FIXME: There must be a better way to do this
|
|
|
|
# Need to pass the include path to find gst/gst.h and gst/gstenumtypes.h (built)
|
|
|
|
gst_gir_extra_args += ['--cflags-begin',
|
|
|
|
'-I' + meson.current_source_dir() + '/..',
|
|
|
|
'-I' + meson.current_build_dir() + '/..',
|
|
|
|
'--cflags-end']
|
|
|
|
endif
|
2016-08-26 23:06:59 +00:00
|
|
|
|
|
|
|
gst_incdirs += [include_directories(meson.current_build_dir() + '/..')]
|
|
|
|
gst_gen_sources += [gnome.generate_gir(libgst_shared,
|
2016-08-12 14:55:17 +00:00
|
|
|
sources : gst_sources + gst_headers,
|
|
|
|
namespace : 'Gst',
|
|
|
|
nsversion : apiversion,
|
|
|
|
identifier_prefix : 'Gst',
|
|
|
|
symbol_prefix : 'gst',
|
|
|
|
export_packages : 'gstreamer-1.0',
|
|
|
|
includes : ['GLib-2.0', 'GObject-2.0', 'GModule-2.0' ],
|
|
|
|
install : true,
|
|
|
|
extra_args : gst_gir_extra_args,
|
2016-08-26 23:06:59 +00:00
|
|
|
)]
|
2016-08-12 14:55:17 +00:00
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
gst_dep = declare_dependency(link_with : libgst,
|
2016-08-26 23:06:59 +00:00
|
|
|
include_directories : gst_incdirs,
|
2016-08-12 14:55:17 +00:00
|
|
|
dependencies : [glib_dep, gobject_dep, gmodule_dep],
|
|
|
|
# Everything that uses libgst needs this built to compile
|
2016-09-22 22:49:47 +00:00
|
|
|
sources : gst_gen_sources,
|
2016-08-12 14:55:17 +00:00
|
|
|
)
|