]
install_headers(gst_allocators_headers, subdir : 'gstreamer-1.0/gst/allocators/')
+gst_allocators_sources = [ 'gstdmabuf.c', 'gstfdmemory.c' ]
gstallocators = library('gstallocators-@0@'.format(api_version),
- [ 'gstdmabuf.c', 'gstfdmemory.c' ],
+ gst_allocators_sources,
c_args : gst_plugins_base_args,
include_directories: [configinc, libsinc],
version : libversion,
dependencies : [gst_dep],
vs_module_defs: vs_module_defs_dir + 'libgstallocators.def',
)
-# TODO: generate gir
+
+allocators_gen_sources = []
+if build_gir
+ allocators_gen_sources += [gnome.generate_gir(gstallocators,
+ sources : gst_allocators_sources + gst_allocators_headers,
+ namespace : 'GstAllocators',
+ nsversion : api_version,
+ identifier_prefix : 'Gst',
+ symbol_prefix : 'gst',
+ export_packages : 'gstreamer-allocators-1.0',
+ includes : ['Gst-1.0'],
+ install : true,
+ extra_args : gir_init_section,
+ dependencies : [gst_dep]
+ )]
+endif
allocators_dep = declare_dependency(link_with: gstallocators,
include_directories : [libsinc],
- dependencies : [gst_dep])
+ dependencies : [gst_dep],
+ sources : allocators_gen_sources)
dependencies : [gst_base_dep],
vs_module_defs: vs_module_defs_dir + 'libgstapp.def',
)
-# TODO: generate gir
+
+app_gen_sources = []
+if build_gir
+ app_gen_sources += [gnome.generate_gir(gstapp,
+ sources : app_sources + app_headers,
+ namespace : 'GstApp',
+ nsversion : api_version,
+ identifier_prefix : 'Gst',
+ symbol_prefix : 'gst',
+ export_packages : 'gstreamer-app-1.0',
+ includes : ['Gst-1.0', 'GstBase-1.0'],
+ install : true,
+ extra_args : gir_init_section,
+ dependencies : [gst_dep, gst_base_dep]
+ )]
+endif
app_dep = declare_dependency(link_with: gstapp,
include_directories : [libsinc],
- dependencies : [gst_base_dep])
+ dependencies : [gst_base_dep],
+ sources : app_gen_sources)
input : audio_mkenum_headers,
depends : [gstaudio_h],
command : [mkenums, glib_mkenums, '@OUTPUT@', '@INPUT@'])
+audio_gen_sources = [gstaudio_h]
orcsrc = 'gstaudiopack'
if have_orcc
simd_dependencies += audio_resampler_sse41
endif
+gstaudio_deps = [tag_dep, gst_base_dep, orc_dep, libm]
gstaudio = library('gstaudio-@0@'.format(api_version),
audio_src, gstaudio_h, gstaudio_c, orc_c, orc_h,
c_args : gst_plugins_base_args + simd_cargs,
version : libversion,
soversion : soversion,
install : true,
- dependencies : [tag_dep, gst_base_dep, orc_dep, libm],
+ dependencies : gstaudio_deps,
vs_module_defs: vs_module_defs_dir + 'libgstaudio.def',
)
-# TODO: generate gir
+
+if build_gir
+ audio_gen_sources += [gnome.generate_gir(gstaudio,
+ sources : audio_src + audio_headers + [gstaudio_c] + [gstaudio_h],
+ namespace : 'GstAudio',
+ nsversion : api_version,
+ identifier_prefix : 'Gst',
+ symbol_prefix : 'gst',
+ export_packages : 'gstreamer-audio-1.0',
+ includes : ['Gst-1.0', 'GLib-2.0', 'GObject-2.0', 'GModule-2.0' ],
+ install : true,
+ extra_args : gir_init_section,
+ dependencies : gstaudio_deps
+ )]
+endif
audio_dep = declare_dependency(link_with : gstaudio,
include_directories : [libsinc],
- dependencies : [gst_base_dep, tag_dep],
- sources : [gstaudio_h])
+ dependencies : gstaudio_deps,
+ sources : audio_gen_sources)
dependencies : [gst_dep, libm],
vs_module_defs: vs_module_defs_dir + 'libgstfft.def',
)
-# TODO: generate gir
+
+fft_gen_sources = []
+if build_gir
+ fft_gen_sources += [gnome.generate_gir(gstfft,
+ sources : fft_sources + fft_headers,
+ namespace : 'GstFft',
+ nsversion : api_version,
+ identifier_prefix : 'Gst',
+ symbol_prefix : 'gst',
+ export_packages : 'gstreamer-fft-1.0',
+ includes : ['Gst-1.0'],
+ install : true,
+ extra_args : gir_init_section,
+ dependencies : [gst_dep, libm]
+ )]
+endif
fft_dep = declare_dependency(link_with: gstfft,
include_directories : [libsinc],
- dependencies : [gst_dep])
+ dependencies : [gst_dep],
+ sources: fft_gen_sources)
depends : [gstaudio_h, gstvideo_h, gstpbutils_h],
command : [mkenums, glib_mkenums, '@OUTPUT@', '@INPUT@'])
+gstpbutils_deps = [video_dep, audio_dep, tag_dep]
pbutils = library('gstpbutils-@0@'.format(api_version),
pbutils_sources, gstpbutils_c, gstpbutils_h,
c_args : gst_plugins_base_args,
version : libversion,
soversion : soversion,
install : true,
- dependencies : [video_dep, audio_dep, tag_dep],
+ dependencies : gstpbutils_deps,
vs_module_defs: vs_module_defs_dir + 'libgstpbutils.def',
)
-# TODO: generate gir
+
+pbutils_gen_sources = [gstpbutils_h]
+if build_gir
+ pbutils_gen_sources += [gnome.generate_gir(pbutils,
+ sources : pbutils_sources + pbutils_headers + [gstpbutils_h],
+ namespace : 'GstPbutils',
+ nsversion : api_version,
+ identifier_prefix : 'Gst',
+ symbol_prefix : 'gst',
+ export_packages : 'gstreamer-pbutils-1.0',
+ includes : ['Gst-1.0', 'GstBase-1.0'],
+ install : true,
+ extra_args : gir_init_section,
+ dependencies : gstpbutils_deps
+ )]
+endif
pbutils_dep = declare_dependency(link_with : pbutils,
include_directories : [libsinc],
- dependencies : [video_dep, audio_dep, tag_dep],
- sources : [gstpbutils_h])
+ dependencies : gstpbutils_deps,
+ sources : pbutils_gen_sources)
]
install_headers(riff_headers, subdir : 'gstreamer-1.0/gst/riff/')
+riff_deps = [audio_dep, tag_dep]
gstriff = library('gstriff-@0@'.format(api_version),
riff_sources,
c_args : gst_plugins_base_args,
version : libversion,
soversion : soversion,
install : true,
- dependencies : [audio_dep, tag_dep],
+ dependencies : riff_deps,
vs_module_defs: vs_module_defs_dir + 'libgstriff.def',
)
-# TODO: generate gir
+
+riff_gen_sources = []
+
+# *** GIR DISABLED for this library ***
+# This library does not respect the type naming conventions required to be
+# usable in binded languages.
+# if build_gir
+# riff_gen_sources += [gnome.generate_gir(gstriff,
+# sources : riff_sources + riff_headers,
+# namespace : 'GstRiff',
+# nsversion : api_version,
+# identifier_prefix : 'Gst',
+# symbol_prefix : 'gst',
+# export_packages : 'gstreamer-riff-1.0',
+# includes : ['Gst-1.0'],
+# install : true,
+# extra_args : gir_init_section,
+# dependencies : riff_deps,
+# )]
+# endif
riff_dep = declare_dependency(link_with: gstriff,
include_directories : [libsinc],
- dependencies : [audio_dep, tag_dep])
+ dependencies : riff_deps,
+ sources : riff_gen_sources )
depends : [gstaudio_h, gstrtp_enum_h],
command : [mkenums, glib_mkenums, '@OUTPUT@', '@INPUT@'])
+gstrtp_deps = [audio_dep, gst_base_dep]
gst_rtp = library('gstrtp-@0@'.format(api_version),
rtp_sources, gstrtp_enum_c, gstrtp_enum_h,
c_args : gst_plugins_base_args,
version : libversion,
soversion : soversion,
install : true,
- dependencies : [audio_dep, gst_base_dep],
+ dependencies : gstrtp_deps,
vs_module_defs: vs_module_defs_dir + 'libgstrtp.def',
)
-# TODO: generate gir
+
+rtp_gen_sources = [gstrtp_enum_h]
+if build_gir
+ rtp_gen_sources += [gnome.generate_gir(gst_rtp,
+ sources : rtp_sources + rtp_headers + [gstrtp_enum_c] + [gstrtp_enum_h],
+ namespace : 'GstRtp',
+ nsversion : api_version,
+ identifier_prefix : 'Gst',
+ symbol_prefix : 'gst',
+ export_packages : 'gstreamer-rtp-1.0',
+ includes : ['Gst-1.0', 'GstBase-1.0'],
+ install : true,
+ extra_args : gir_init_section,
+ dependencies : gstrtp_deps
+ )]
+endif
+
rtp_dep = declare_dependency(link_with : gst_rtp,
include_directories : [libsinc],
- dependencies : [audio_dep, gst_base_dep],
- sources : [gstrtp_enum_h])
+ dependencies : gstrtp_deps,
+ sources : rtp_gen_sources)
winsock2 = cc.find_library('ws2_32', required : false)
+gstrtsp_deps = [gst_dep, gio_dep, libm, winsock2]
gst_rtsp = library('gstrtsp-@0@'.format(api_version),
rtsp_sources,
gstrtsp_h, gstrtsp_c,
version : libversion,
soversion : soversion,
install : true,
- dependencies : [gst_dep, gio_dep, libm, winsock2],
+ dependencies : gstrtsp_deps,
vs_module_defs: vs_module_defs_dir + 'libgstrtsp.def',
)
-# TODO: generate gir
+
+rtsp_gen_sources = [gstrtsp_h]
+if build_gir
+ rtsp_gen_sources += [gnome.generate_gir(gst_rtsp,
+ sources : rtsp_sources + rtsp_headers + [gstrtsp_c] + [gstrtsp_h],
+ namespace : 'GstRtsp',
+ nsversion : api_version,
+ identifier_prefix : 'Gst',
+ symbol_prefix : 'gst',
+ export_packages : 'gstreamer-rtsp-1.0',
+ includes : ['Gst-1.0', 'GstSdp-1.0', 'Gio-2.0'],
+ install : true,
+ extra_args : gir_init_section,
+ dependencies : gstrtsp_deps
+ )]
+endif
rtsp_dep = declare_dependency(link_with : gst_rtsp,
include_directories : [libsinc],
- dependencies : [gst_dep, gio_dep],
- sources : [gstrtsp_h])
+ dependencies : gstrtsp_deps,
+ sources : rtsp_gen_sources)
]
install_headers(gst_sdp_headers, subdir : 'gstreamer-1.0/gst/sdp/')
+rtsp_deps = [rtp_dep, gst_dep, gio_dep]
+gst_sdp_sources = ['gstsdpmessage.c', 'gstmikey.c']
gstsdp = library('gstsdp-@0@'.format(api_version),
- 'gstsdpmessage.c', 'gstmikey.c',
+ gst_sdp_sources,
c_args : gst_plugins_base_args,
include_directories: [configinc, libsinc],
version : libversion,
soversion : soversion,
install : true,
- dependencies : [rtp_dep, gst_dep, gio_dep],
+ dependencies : rtsp_deps,
vs_module_defs: vs_module_defs_dir + 'libgstsdp.def',
)
-# TODO: generate gir
+
+sdp_gen_sources = []
+if build_gir
+ sdp_gen_sources += [gnome.generate_gir(gstsdp,
+ sources : gst_sdp_sources + gst_sdp_headers,
+ namespace : 'GstSdp',
+ nsversion : api_version,
+ identifier_prefix : 'Gst',
+ symbol_prefix : 'gst',
+ export_packages : 'gstreamer-sdp-1.0',
+ includes : ['Gst-1.0'],
+ install : true,
+ extra_args : gir_init_section,
+ dependencies : rtsp_deps
+ )]
+endif
sdp_dep = declare_dependency(link_with: gstsdp,
include_directories : [libsinc],
- dependencies : [rtp_dep, gst_dep, gio_dep])
+ dependencies : rtsp_deps,
+ sources: sdp_gen_sources)
]
install_headers(tag_headers, subdir : 'gstreamer-1.0/gst/tag/')
+tag_deps = [gst_base_dep, libm]
gsttag = library('gsttag-@0@'.format(api_version),
tag_sources,
c_args : gst_plugins_base_args,
version : libversion,
soversion : soversion,
install : true,
- dependencies : [gst_base_dep, libm],
+ dependencies : tag_deps,
vs_module_defs: vs_module_defs_dir + 'libgsttag.def',
)
-# TODO: generate gir
+
+tag_gen_sources = []
+if build_gir
+ tag_gen_sources += [gnome.generate_gir(gsttag,
+ sources : tag_sources + tag_headers,
+ namespace : 'GstTag',
+ nsversion : api_version,
+ identifier_prefix : 'Gst',
+ symbol_prefix : 'gst',
+ export_packages : 'gstreamer-tag-1.0',
+ includes : ['Gst-1.0'],
+ install : true,
+ extra_args : gir_init_section,
+ dependencies : tag_deps
+ )]
+endif
tag_dep = declare_dependency(link_with: gsttag,
include_directories : [libsinc],
- dependencies : [gst_base_dep])
+ dependencies : tag_deps,
+ sources: tag_gen_sources)
# FIXME: iso-codes stuff
# little program that reads iso_639.xml and outputs tables for us as fallback
input : video_mkenum_headers,
depends : [gstvideo_h],
command : [mkenums, glib_mkenums, '@OUTPUT@', '@INPUT@'])
+video_gen_sources = [gstvideo_h]
orcsrc = 'video-orc'
if have_orcc
configuration : configuration_data())
endif
+gstvideo_deps = [gst_base_dep, orc_dep, libm]
gstvideo = library('gstvideo-@0@'.format(api_version),
video_sources, gstvideo_h, gstvideo_c, orc_c, orc_h,
c_args : gst_plugins_base_args,
version : libversion,
soversion : soversion,
install : true,
- dependencies : [gst_base_dep, orc_dep, libm],
+ dependencies : gstvideo_deps,
vs_module_defs: vs_module_defs_dir + 'libgstvideo.def',
)
-# TODO: generate gir
+
+if build_gir
+ video_gen_sources += [gnome.generate_gir(gstvideo,
+ sources : video_sources + video_headers + [gstvideo_c] + [gstvideo_h],
+ namespace : 'GstVideo',
+ nsversion : api_version,
+ identifier_prefix : 'Gst',
+ symbol_prefix : 'gst',
+ export_packages : 'gstreamer-video-1.0',
+ includes : ['Gst-1.0', 'GLib-2.0', 'GObject-2.0', 'GModule-2.0' ],
+ install : true,
+ extra_args : gir_init_section,
+ dependencies : gstvideo_deps
+ )]
+endif
video_dep = declare_dependency(link_with : gstvideo,
include_directories : [libsinc],
- dependencies : [gst_base_dep],
- sources : [gstvideo_h])
+ dependencies : gstvideo_deps,
+ sources : video_gen_sources)
pic_args = []
endif
+gir = find_program('g-ir-scanner', required : false)
+gnome = import('gnome')
+build_gir = gir.found() and not meson.is_cross_build() and not get_option('disable_introspection')
+gir_init_section = [ '--add-init-section=extern void gst_init(gint*,gchar**);' + \
+ 'g_setenv("GST_REGISTRY_1.0", "@0@", TRUE);'.format(meson.current_build_dir() + '/gir_empty_registry.reg') + \
+ 'g_setenv("GST_PLUGIN_PATH_1_0", "", TRUE);' + \
+ 'g_setenv("GST_PLUGIN_SYSTEM_PATH_1_0", "", TRUE);' + \
+ 'gst_init(NULL,NULL);' ]
+
subdir('gst-libs')
subdir('gst')
subdir('ext')
option('audioresample_format', type : 'combo', choices : ['int', 'float', 'auto'], value : 'auto')
option('disable_examples', type : 'boolean', value : false)
option('use_orc', type : 'combo', choices : ['yes', 'no', 'auto'], value : 'auto')
+option('disable_introspection',
+ type : 'boolean', value : false,
+ description : 'Whether to disable the introspection generation')