Blame gst/meson.build

Packit Service 963350
gst_sources = [
Packit Service 963350
  'gst.c',
Packit Service 963350
  'gstobject.c',
Packit Service 963350
  'gstallocator.c',
Packit Service 963350
  'gstbin.c',
Packit Service 963350
  'gstbuffer.c',
Packit Service 963350
  'gstbufferlist.c',
Packit Service 963350
  'gstbufferpool.c',
Packit Service 963350
  'gstbus.c',
Packit Service 963350
  'gstcaps.c',
Packit Service 963350
  'gstcapsfeatures.c',
Packit Service 963350
  'gstchildproxy.c',
Packit Service 963350
  'gstclock.c',
Packit Service 963350
  'gstcontext.c',
Packit Service 963350
  'gstcontrolbinding.c',
Packit Service 963350
  'gstcontrolsource.c',
Packit Service 963350
  'gstdatetime.c',
Packit Service 963350
  'gstdebugutils.c',
Packit Service 963350
  'gstdevice.c',
Packit Service 963350
  'gstdeviceprovider.c',
Packit Service 963350
  'gstdeviceproviderfactory.c',
Packit Service 963350
  'gstdynamictypefactory.c',
Packit Service 963350
  'gstelement.c',
Packit Service 963350
  'gstelementfactory.c',
Packit Service 963350
  'gsterror.c',
Packit Service 963350
  'gstevent.c',
Packit Service 963350
  'gstformat.c',
Packit Service 963350
  'gstghostpad.c',
Packit Service 963350
  'gstdevicemonitor.c',
Packit Service 963350
  'gstinfo.c',
Packit Service 963350
  'gstiterator.c',
Packit Service 963350
  'gstatomicqueue.c',
Packit Service 963350
  'gstmessage.c',
Packit Service 963350
  'gstmeta.c',
Packit Service 963350
  'gstmemory.c',
Packit Service 963350
  'gstminiobject.c',
Packit Service 963350
  'gstpad.c',
Packit Service 963350
  'gstpadtemplate.c',
Packit Service 963350
  'gstparamspecs.c',
Packit Service 963350
  'gstpipeline.c',
Packit Service 963350
  'gstplugin.c',
Packit Service 963350
  'gstpluginfeature.c',
Packit Service 963350
  'gstpluginloader.c',
Packit Service 963350
  'gstpoll.c',
Packit Service 963350
  'gstpreset.c',
Packit Service 963350
  'gstprotection.c',
Packit Service 963350
  'gstquark.c',
Packit Service 963350
  'gstquery.c',
Packit Service 963350
  'gstregistry.c',
Packit Service 963350
  'gstregistrychunks.c',
Packit Service 963350
  'gstpromise.c',
Packit Service 963350
  'gstsample.c',
Packit Service 963350
  'gstsegment.c',
Packit Service 963350
  'gststreamcollection.c',
Packit Service 963350
  'gststreams.c',
Packit Service 963350
  'gststructure.c',
Packit Service 963350
  'gstsystemclock.c',
Packit Service 963350
  'gsttaglist.c',
Packit Service 963350
  'gsttagsetter.c',
Packit Service 963350
  'gsttask.c',
Packit Service 963350
  'gsttaskpool.c',
Packit Service 963350
  'gsttoc.c',
Packit Service 963350
  'gsttocsetter.c',
Packit Service 963350
  'gsttracer.c',
Packit Service 963350
  'gsttracerfactory.c',
Packit Service 963350
  'gsttracerrecord.c',
Packit Service 963350
  'gsttracerutils.c',
Packit Service 963350
  'gsttypefind.c',
Packit Service 963350
  'gsttypefindfactory.c',
Packit Service 963350
  'gsturi.c',
Packit Service 963350
  'gstutils.c',
Packit Service 963350
  'gstvalue.c',
Packit Service 963350
  'gstparse.c',
Packit Service 963350
]
Packit Service 963350
Packit Service 963350
gst_headers = [
Packit Service 963350
  'gst.h',
Packit Service 963350
  'glib-compat.h',
Packit Service 963350
  'gstobject.h',
Packit Service 963350
  'gstallocator.h',
Packit Service 963350
  'gstbin.h',
Packit Service 963350
  'gstbuffer.h',
Packit Service 963350
  'gstbufferlist.h',
Packit Service 963350
  'gstbufferpool.h',
Packit Service 963350
  'gstbus.h',
Packit Service 963350
  'gstcaps.h',
Packit Service 963350
  'gstcapsfeatures.h',
Packit Service 963350
  'gstchildproxy.h',
Packit Service 963350
  'gstclock.h',
Packit Service 963350
  'gstcompat.h',
Packit Service 963350
  'gstcontext.h',
Packit Service 963350
  'gstcontrolbinding.h',
Packit Service 963350
  'gstcontrolsource.h',
Packit Service 963350
  'gstdatetime.h',
Packit Service 963350
  'gstdebugutils.h',
Packit Service 963350
  'gstelement.h',
Packit Service 963350
  'gstelementmetadata.h',
Packit Service 963350
  'gstdevice.h',
Packit Service 963350
  'gstdeviceprovider.h',
Packit Service 963350
  'gstdeviceproviderfactory.h',
Packit Service 963350
  'gstdynamictypefactory.h',
Packit Service 963350
  'gstelementfactory.h',
Packit Service 963350
  'gsterror.h',
Packit Service 963350
  'gstevent.h',
Packit Service 963350
  'gstformat.h',
Packit Service 963350
  'gstghostpad.h',
Packit Service 963350
  'gstdevicemonitor.h',
Packit Service 963350
  'gstinfo.h',
Packit Service 963350
  'gstiterator.h',
Packit Service 963350
  'gstatomicqueue.h',
Packit Service 963350
  'gstmacros.h',
Packit Service 963350
  'gstmessage.h',
Packit Service 963350
  'gstmeta.h',
Packit Service 963350
  'gstmemory.h',
Packit Service 963350
  'gstminiobject.h',
Packit Service 963350
  'gstpad.h',
Packit Service 963350
  'gstpadtemplate.h',
Packit Service 963350
  'gstparamspecs.h',
Packit Service 963350
  'gstpipeline.h',
Packit Service 963350
  'gstplugin.h',
Packit Service 963350
  'gstpluginfeature.h',
Packit Service 963350
  'gstpoll.h',
Packit Service 963350
  'gstpreset.h',
Packit Service 963350
  'gstprotection.h',
Packit Service 963350
  'gstquery.h',
Packit Service 963350
  'gstpromise.h',
Packit Service 963350
  'gstsample.h',
Packit Service 963350
  'gstsegment.h',
Packit Service 963350
  'gststreamcollection.h',
Packit Service 963350
  'gststreams.h',
Packit Service 963350
  'gststructure.h',
Packit Service 963350
  'gstsystemclock.h',
Packit Service 963350
  'gsttaglist.h',
Packit Service 963350
  'gsttagsetter.h',
Packit Service 963350
  'gsttask.h',
Packit Service 963350
  'gsttaskpool.h',
Packit Service 963350
  'gsttoc.h',
Packit Service 963350
  'gsttocsetter.h',
Packit Service 963350
  'gsttracer.h',
Packit Service 963350
  'gsttracerfactory.h',
Packit Service 963350
  'gsttracerrecord.h',
Packit Service 963350
  'gsttypefind.h',
Packit Service 963350
  'gsttypefindfactory.h',
Packit Service 963350
  'gsturi.h',
Packit Service 963350
  'gstutils.h',
Packit Service 963350
  'gstvalue.h',
Packit Service 963350
  'gstregistry.h',
Packit Service 963350
  'gstparse.h',
Packit Service 963350
  'math-compat.h',
Packit Service 963350
]
Packit Service 963350
install_headers(gst_headers, subdir : 'gstreamer-1.0/gst')
Packit Service 963350
Packit Service 963350
disable_registry = get_option('disable_registry')
Packit Service 963350
if not disable_registry
Packit Service 963350
  gst_registry = ['gstregistrybinary.c']
Packit Service 963350
else
Packit Service 963350
  gst_registry = []
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
# Make copy so configure_file consumes the copy and we can
Packit Service 963350
# still add to the original cdata later.
Packit Service 963350
gst_cdata = cdata
Packit Service 963350
Packit Service 963350
if disable_gst_debug
Packit Service 963350
  gst_cdata.set('GST_DISABLE_GST_DEBUG_DEFINE', '#define GST_DISABLE_GST_DEBUG 1')
Packit Service 963350
else
Packit Service 963350
  gst_cdata.set('GST_DISABLE_GST_DEBUG_DEFINE', '#undef GST_DISABLE_GST_DEBUG')
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
if disable_registry
Packit Service 963350
  gst_cdata.set('GST_DISABLE_REGISTRY_DEFINE', '#define GST_DISABLE_REGISTRY 1')
Packit Service 963350
else
Packit Service 963350
  gst_cdata.set('GST_DISABLE_REGISTRY_DEFINE', '#undef GST_DISABLE_REGISTRY')
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
# FIXME: add --disable-parse option? (but autotools doesn't seem to set this
Packit Service 963350
# define properly at all either even though it does expose the option)
Packit Service 963350
gst_cdata.set('GST_DISABLE_PARSE_DEFINE', '#undef GST_DISABLE_PARSE')
Packit Service 963350
Packit Service 963350
# FIXME: add --disable-plugin option?
Packit Service 963350
gst_cdata.set('GST_DISABLE_PLUGIN_DEFINE', '#undef GST_DISABLE_PLUGIN')
Packit Service 963350
Packit Service 963350
configure_file(input : 'gstconfig.h.in',
Packit Service 963350
  output : 'gstconfig.h',
Packit Service 963350
  install_dir : 'include/gstreamer-1.0/gst',
Packit Service 963350
  configuration : gst_cdata)
Packit Service 963350
Packit Service 963350
version_cdata = configuration_data()
Packit Service 963350
version_cdata.set('GST_VERSION_MAJOR', gst_version_major)
Packit Service 963350
version_cdata.set('GST_VERSION_MINOR', gst_version_minor)
Packit Service 963350
version_cdata.set('GST_VERSION_MICRO', gst_version_micro)
Packit Service 963350
version_cdata.set('GST_VERSION_NANO', gst_version_nano)
Packit Service 963350
Packit Service 963350
gst_version_h = configure_file(input : 'gstversion.h.in',
Packit Service 963350
  output : 'gstversion.h',
Packit Service 963350
  install_dir : 'include/gstreamer-1.0/gst',
Packit Service 963350
  configuration : version_cdata)
Packit Service 963350
Packit Service 963350
gst_enums = gnome.mkenums('gstenumtypes',
Packit Service 963350
  sources : gst_headers,
Packit Service 963350
  h_template : 'gstenumtypes.h.template',
Packit Service 963350
  c_template : 'gstenumtypes.c.template',
Packit Service 963350
  install_header : true,
Packit Service 963350
  install_dir : join_paths(get_option('includedir'), 'gstreamer-1.0/gst'))
Packit Service 963350
Packit Service 963350
gstenum_h = gst_enums[1]
Packit Service 963350
gstenum_c = gst_enums[0]
Packit Service 963350
Packit Service 963350
Packit Service 963350
subdir('parse')
Packit Service 963350
subdir('printf')
Packit Service 963350
Packit Service 963350
libgst_c_args = gst_c_args + [
Packit Service 963350
  '-D_GNU_SOURCE',
Packit Service 963350
  '-DGST_EXPORTS',
Packit Service 963350
  '-DG_LOG_DOMAIN=g_log_domain_gstreamer',
Packit Service 963350
  '-DGST_DISABLE_DEPRECATED',
Packit Service 963350
]
Packit Service 963350
Packit Service 963350
disable_tracer_hooks = get_option('disable_tracer_hooks')
Packit Service 963350
if disable_tracer_hooks
Packit Service 963350
  libgst_c_args += ['-DGST_DISABLE_GST_TRACER_HOOKS']
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
# Make it possible to build both static and shared versions
Packit Service 963350
# at the same time. By default use shared for unit tests etc.
Packit Service 963350
# This choice is arbitrary.
Packit Service 963350
if libtype != 'shared'
Packit Service 963350
  libgst_static = static_library('gstreamer-1.0', gst_sources,
Packit Service 963350
    gstenum_h, gstenum_c, grammar, parser, gst_registry,
Packit Service 963350
    c_args : [libgst_c_args],
Packit Service 963350
    include_directories : [configinc,
Packit Service 963350
      # HACK, change include paths in .y and .l in final version.
Packit Service 963350
      include_directories('parse')],
Packit Service 963350
    install : true,
Packit Service 963350
    link_with : printf_lib,
Packit Service 963350
    dependencies : [gobject_dep, gmodule_dep, glib_dep, mathlib] + backtrace_deps  + platform_deps,
Packit Service 963350
  )
Packit Service 963350
  libgst = libgst_static
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
# Make sure that subproject building gir files work
Packit Service 963350
gst_incdirs = [configinc]
Packit Service 963350
gst_gen_sources = [gstenum_h]
Packit Service 963350
if libtype != 'static'
Packit Service 963350
  libgst_shared = shared_library('gstreamer-1.0', gst_sources,
Packit Service 963350
    gstenum_h, gstenum_c, grammar, parser, gst_registry,
Packit Service 963350
    version : libversion,
Packit Service 963350
    soversion : soversion,
Packit Service 963350
    c_args : libgst_c_args,
Packit Service 963350
    include_directories : [configinc,
Packit Service 963350
      # HACK, change include paths in .y and .l in final version.
Packit Service 963350
      include_directories('parse')],
Packit Service 963350
    link_with : printf_lib,
Packit Service 963350
    install : true,
Packit Service 963350
    dependencies : [gobject_dep, gmodule_dep, glib_dep, mathlib, dl_dep] + backtrace_deps
Packit Service 963350
                     + platform_deps,
Packit Service 963350
  )
Packit Service 963350
  libgst = libgst_shared
Packit Service 963350
  if build_gir
Packit Service 963350
    gst_gir_extra_args = gir_init_section + [ '--c-include=gst/gst.h' ]
Packit Service 963350
    if meson.is_subproject()
Packit Service 963350
      # FIXME: There must be a better way to do this
Packit Service 963350
      # Need to pass the include path to find gst/gst.h and gst/gstenumtypes.h (built)
Packit Service 963350
      gst_gir_extra_args += ['--cflags-begin',
Packit Service 963350
	  '-I' + meson.current_source_dir() + '/..',
Packit Service 963350
	  '-I' + meson.current_build_dir() + '/..',
Packit Service 963350
	  '--cflags-end']
Packit Service 963350
    endif
Packit Service 963350
Packit Service 963350
    gst_incdirs += [configinc]
Packit Service 963350
    gst_gen_sources += [gnome.generate_gir(libgst_shared,
Packit Service 963350
      sources : gst_sources + gst_headers + gst_enums + [gst_version_h],
Packit Service 963350
      namespace : 'Gst',
Packit Service 963350
      nsversion : apiversion,
Packit Service 963350
      identifier_prefix : 'Gst',
Packit Service 963350
      symbol_prefix : 'gst',
Packit Service 963350
      export_packages : 'gstreamer-1.0',
Packit Service 963350
      includes : ['GLib-2.0', 'GObject-2.0', 'GModule-2.0' ],
Packit Service 963350
      install : true,
Packit Service 963350
      extra_args : gst_gir_extra_args,
Packit Service 963350
    )]
Packit Service 963350
  endif
Packit Service 963350
endif
Packit Service 963350
Packit Service 963350
gst_dep = declare_dependency(link_with : libgst,
Packit Service 963350
  include_directories : gst_incdirs,
Packit Service 963350
  dependencies : [glib_dep, gobject_dep, gmodule_dep],
Packit Service 963350
  # Everything that uses libgst needs this built to compile
Packit Service 963350
  sources : gst_gen_sources,
Packit Service 963350
)