diff --git a/gacutil_install.py b/gacutil_install.py new file mode 100644 index 0000000000..48ef320b24 --- /dev/null +++ b/gacutil_install.py @@ -0,0 +1,15 @@ +#!/usr/bin/env python3 + +import os +import sys +import subprocess + +outdir = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], 'lib') +builddir = os.environ['MESON_BUILD_ROOT'] + +for i in range(1, len(sys.argv), 2): + assembly_name, fname = sys.argv[i], os.path.join(builddir, sys.argv[i + 1]) + + cmd = ['gacutil', '/i', fname, '/f', '/package', assembly_name, '/root', outdir] + print('(%s) Running %s' % (os.path.abspath(os.path.curdir), ' '.join(cmd))) + subprocess.check_call(cmd) diff --git a/generate_code.py b/generate_code.py new file mode 100644 index 0000000000..34bfb913b5 --- /dev/null +++ b/generate_code.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python3 + +import argparse +import glob +import os +import re +import shutil +import subprocess + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument("--api-raw") + parser.add_argument("--gapi-fixup") + parser.add_argument("--metadata") + parser.add_argument("--gapi-codegen") + parser.add_argument("--glue-file") + parser.add_argument("--glue-includes") + parser.add_argument("--glue-libname") + parser.add_argument("--assembly-name") + parser.add_argument("--extra-includes", action='append', default=[]) + parser.add_argument("--out") + parser.add_argument("--files") + parser.add_argument("--symbols") + parser.add_argument("--schema") + parser.add_argument("--fakeglue", action='store_true') + + opts = parser.parse_args() + if opts.fakeglue: + exit(0) + + if not opts.glue_libname: + opts.glue_libname = opts.assembly_name + 'sharpglue-3' + + api_xml = os.path.join(opts.out, os.path.basename( + opts.api_raw).replace('.raw', '.xml')) + + shutil.copyfile(opts.api_raw, api_xml) + + cmd = [opts.gapi_fixup, "--api=" + api_xml, + "--metadata=" + opts.metadata] + if opts.symbols: + cmd.extend(['--symbols=' + opts.symbols]) + subprocess.check_call(cmd) + + cmd = [ + opts.gapi_codegen, '--generate', api_xml, + '--outdir=' + opts.out, + '--glue-filename=' + opts.glue_file, + '--gluelib-name=' + opts.glue_libname, + '--glue-includes=' + opts.glue_includes, + '--assembly-name=' + opts.assembly_name,] + + if opts.schema: + cmd += ['--schema=' + opts.schema] + + for flag in opts.extra_includes: + flags = flag.split() + for flag in flags: + if not flag.startswith('-I'): + flag = '-I' + flag + cmd.append(flag) + + print(' '.join(cmd)) + subprocess.check_call(cmd) + + # WORKAROUND: Moving files into the out directory with special names + # as meson doesn't like path separator in output names. + regex = re.compile('_') + dirs = set() + for _f in opts.files.split(';'): + fpath = os.path.join(opts.out, regex.sub("/", _f, 1)) + dirs.add(os.path.dirname(fpath)) + _f = os.path.join(opts.out, _f) + shutil.move(fpath, _f) + + missing_files = [] + for _dir in dirs: + missing_files.extend(glob.glob(os.path.join(_dir, '*.cs'))) + + if missing_files: + print("Following files were generated but not listed:\n %s" % + '\n '.join(["'%s_%s'," % (m.split(os.path.sep)[-2], m.split(os.path.sep)[-1]) + for m in missing_files])) + exit(1) + + for _dir in dirs: + shutil.rmtree(_dir) diff --git a/meson.build b/meson.build new file mode 100644 index 0000000000..64f88a1ecc --- /dev/null +++ b/meson.build @@ -0,0 +1,95 @@ +project('gstreamer-sharp', ['cs', 'c'], version: '1.12.0', + meson_version: '>0.42') + + +if host_machine.system() == 'osx' + lib_prefix='' + lib_suffix='.dylib' +else + lib_prefix='.so' + lib_suffix='' +endif + +gtk_sharp_required_version = '>=3.22.6' + +glib_sharp_dep = dependency('glib-sharp-3.0', + version: gtk_sharp_required_version, + fallback: ['gtk-sharp', 'glib_sharp_dep']) + +gio_sharp_dep = dependency('gio-sharp-3.0', + version: gtk_sharp_required_version, + fallback: ['gtk-sharp', 'gio_sharp_dep']) + +if glib_sharp_dep.type_name() == 'internal' + gtk_sharp = subproject('gtk-sharp') + gapi_fixup = gtk_sharp.get_variable('gapi_fixup') + gapi_codegen = gtk_sharp.get_variable('gapi_codegen') + glib_api_includes = gtk_sharp.get_variable('glib_api_includes') + gio_api_includes = gtk_sharp.get_variable('gio_api_includes') + has_gtk = gtk_sharp.get_variable('has_gtk') + if has_gtk + gtk_sharp_dep = [gtk_sharp.get_variable('gtk_sharp_dep'), + gtk_sharp.get_variable('atk_sharp_dep')] + else + gtk_sharp_dep = dependency('gtk-sharp-3.0', version: gtk_sharp_required_version, + required: false) + endif + codegen_dependencies = [gapi_codegen, gapi_fixup] + gapi_fixup = gapi_fixup.full_path() + gapi_codegen = gapi_codegen.full_path() +else + gtk_sharp_dep = dependency('gtk-sharp-3.0', version: gtk_sharp_required_version, + required: false) + has_gtk = gtk_sharp_dep.found() + + gapi_fixup = find_program('gapi3-fixup') + gapi_codegen = find_program('gapi3-codegen') + pkgconfig = find_program('pkg-config') + glib_api_includes = run_command(pkgconfig, '--cflags', 'glib-sharp-3.0').stdout() + gio_api_includes = run_command(pkgconfig, '--cflags', 'gio-sharp-3.0').stdout() + codegen_dependencies = [] +endif + +gacutil = find_program('gacutil') +generate_api = find_program('generate_code.py') +gacutil_install = join_paths(meson.current_source_dir(), 'gacutil_install.py') + +# TODO Handle monodoc + +apiversion = '1.0' +gst_required_version = '>=@0@'.format(meson.project_version()) +gst_deps = [] + +foreach dep: [ + ['gstreamer', ['gstreamer', 'gst_dep']], + ['gstreamer-app', ['gst-plugins-base', 'app_dep']], + ['gstreamer-audio', ['gst-plugins-base', 'audio_dep']], + ['gstreamer-base', ['gst-plugins-base', 'audio_dep']], + ['gstreamer-controller', ['gstreamer', 'gst_controller_dep']], + ['gstreamer-fft', ['gst-plugins-base', 'fft_dep']], + ['gstreamer-net', ['gstreamer', 'gst_net_dep']], + ['gstreamer-pbutils', ['gst-plugins-base', 'pbutils_dep']], + ['gstreamer-riff', ['gst-plugins-base', 'riff_dep']], + ['gstreamer-rtp', ['gst-plugins-base', 'rtp_dep']], + ['gstreamer-rtsp', ['gst-plugins-base', 'rtsp_dep']], + ['gstreamer-sdp', ['gst-plugins-base', 'sdp_dep']], + ['gstreamer-tag', ['gst-plugins-base', 'tag_dep']], + ['gstreamer-video', ['gst-plugins-base', 'video_dep']],] + + gst_deps += [dependency(dep.get(0) + '-' + apiversion, version: gst_required_version, + fallback: dep.get(1))] +endforeach + +subdir('sources') +subdir('samples') + +bindinate = find_program('bindinate', required: false) + +if bindinate.found() + run_target('update-bindings', + command: [bindinate, + '--name=gstreamer', '--regenerate=true', + '--merge-with=GstApp-1.0,GstAudio-1.0,GstBase-1.0,GstController-1.0,GstFft-1.0,GstNet-1.0,GstPbutils-1.0,GstRiff-1.0,GstRtp-1.0,GstRtsp-1.0,GstSdp-1.0,GstTag-1.0,GstVideo-1.0', + '--gir=Gst-1.0'] + ) +endif diff --git a/samples/meson.build b/samples/meson.build new file mode 100644 index 0000000000..8cf2b5bfef --- /dev/null +++ b/samples/meson.build @@ -0,0 +1,35 @@ +examples = [ + ['playback', 'Playback.cs'], + ['video-overlay' , 'VideoOverlay.cs', has_gtk, gtk_sharp_dep], + ['basic-tutorial-1' , 'BasicTutorial1.cs',], + ['basic-tutorial-2' , 'BasicTutorial2.cs',], + ['basic-tutorial-3' , 'BasicTutorial3.cs',], + ['basic-tutorial-4' , 'BasicTutorial4.cs',], + ['basic-tutorial-5' , 'BasicTutorial5.cs', has_gtk, gtk_sharp_dep], + ['basic-tutorial-6' , 'BasicTutorial6.cs',], + ['basic-tutorial-7' , 'BasicTutorial7.cs',], + ['basic-tutorial-8' , 'BasicTutorial8.cs',], + ['basic-tutorial-9' , 'BasicTutorial9.cs',], + ['basic-tutorial-12' , 'BasicTutorial12.cs',], + ['basic-tutorial-13' , 'BasicTutorial13.cs',], + ['example-volume' , 'ExampleVolume.cs',], + ['playback-tutorial-1' , 'PlaybackTutorial1.cs',], + ['playback-tutorial-2' , 'PlaybackTutorial2.cs',], + ['playback-tutorial-3' , 'PlaybackTutorial3.cs',], + ['playback-tutorial-4' , 'PlaybackTutorial4.cs',], + ['playback-tutorial-5' , 'PlaybackTutorial5.cs',], + ['playback-tutorial-6' , 'PlaybackTutorial6.cs',], + ['playback-tutorial-7' , 'PlaybackTutorial7.cs',], +] + +foreach example: examples + deps = [gst_sharp_dep] + if example.length() == 2 or example.get(2) + if example.length() > 2 + deps += example.get(3) + endif + + executable(example.get(0), example.get(1), + cs_args: ['-unsafe'], dependencies: deps) + endif +endforeach diff --git a/sources/generated/meson.build b/sources/generated/meson.build new file mode 100644 index 0000000000..6216cecef2 --- /dev/null +++ b/sources/generated/meson.build @@ -0,0 +1,736 @@ +generated_sources = [ + 'Gst.Sdp_MIKEYMacAlg.cs', + 'Gst.Sdp_MIKEYPRFFunc.cs', + 'Gst.Sdp_SDPResult.cs', + 'Gst.Sdp_MIKEYTSType.cs', + 'Gst.Sdp_Global.cs', + 'Gst.Sdp_MIKEYDecryptInfo.cs', + 'Gst.Sdp_MIKEYPayload.cs', + 'Gst.Sdp_SDPMessage.cs', + 'Gst.Sdp_SDPKey.cs', + 'Gst.Sdp_SDPZone.cs', + 'Gst.Sdp_MIKEYCacheType.cs', + 'Gst.Sdp_MIKEYPayloadPKE.cs', + 'Gst.Sdp_MIKEYMapType.cs', + 'Gst.Sdp_MIKEYKeyDataType.cs', + 'Gst.Sdp_MIKEYPayloadSP.cs', + 'Gst.Sdp_SDPAttribute.cs', + 'Gst.Sdp_SDPOrigin.cs', + 'Gst.Sdp_MIKEYPayloadT.cs', + 'Gst.Sdp_MIKEYMapSRTP.cs', + 'Gst.Sdp_MIKEYKVType.cs', + 'Gst.Sdp_MIKEYPayloadSPParam.cs', + 'Gst.Sdp_SDPBandwidth.cs', + 'Gst.Sdp_MIKEYSecSRTP.cs', + 'Gst.Sdp_MIKEYPayloadType.cs', + 'Gst.Sdp_MIKEYSecProto.cs', + 'Gst.Sdp_MIKEYPayloadKEMAC.cs', + 'Gst.Sdp_MIKEYMessage.cs', + 'Gst.Sdp_MIKEYEncAlg.cs', + 'Gst.Sdp_MIKEYEncryptInfo.cs', + 'Gst.Sdp_SDPTime.cs', + 'Gst.Sdp_MIKEYPayloadRAND.cs', + 'Gst.Sdp_MIKEYPayloadKeyData.cs', + 'Gst.Sdp_SDPMedia.cs', + 'Gst.Sdp_MIKEYType.cs', + 'Gst.Sdp_SDPConnection.cs', + 'Gst.Sdp_Constants.cs', + 'Gst.Rtsp_RTSPAuthMethod.cs', + 'Gst.Rtsp_Global.cs', + 'Gst.Rtsp_RTSPTime2.cs', + 'Gst.Rtsp_RTSPEvent.cs', + 'Gst.Rtsp_RTSPRangeUnit.cs', + 'Gst.Rtsp_RTSPWatch.cs', + 'Gst.Rtsp_RTSPVersion.cs', + 'Gst.Rtsp_RTSPMessage.cs', + 'Gst.Rtsp_RTSPResult.cs', + 'Gst.Rtsp_RTSPUrl.cs', + 'Gst.Rtsp_RTSPConnection.cs', + 'Gst.Rtsp_RTSPHeaderField.cs', + 'Gst.Rtsp_SendEventHandler.cs', + 'Gst.Rtsp_RTSPLowerTrans.cs', + 'Gst.Rtsp_RTSPState.cs', + 'Gst.Rtsp_RTSPMsgType.cs', + 'Gst.Rtsp_RTSPWatchFuncs.cs', + 'Gst.Rtsp_RTSPTransMode.cs', + 'Gst.Rtsp_RTSPAuthCredential.cs', + 'Gst.Rtsp_RTSPTimeRange.cs', + 'Gst.Rtsp_IRTSPExtension.cs', + 'Gst.Rtsp_RTSPTimeType.cs', + 'Gst.Rtsp_RTSPMethod.cs', + 'Gst.Rtsp_RTSPFamily.cs', + 'Gst.Rtsp_RTSPTransport.cs', + 'Gst.Rtsp_RTSPExtensionAdapter.cs', + 'Gst.Rtsp_RTSPRange.cs', + 'Gst.Rtsp_RTSPProfile.cs', + 'Gst.Rtsp_RTSPStatusCode.cs', + 'Gst.Rtsp_Constants.cs', + 'Gst.Rtsp_RTSPAuthParam.cs', + 'Gst.Rtsp_RTSPTime.cs', + 'Gst.Base_Gst.BaseSharp.CollectPadsFunctionNative.cs', + 'Gst.Base_CollectPadsCompareFunction.cs', + 'Gst.Base_Gst.BaseSharp.CollectPadsCompareFunctionNative.cs', + 'Gst.Base_Gst.BaseSharp.TypeFindHelperGetRangeFunctionNative.cs', + 'Gst.Base_Gst.BaseSharp.DataQueueCheckFullFunctionNative.cs', + 'Gst.Base_Global.cs', + 'Gst.Base_CollectPadsFunction.cs', + 'Gst.Base_DataQueueEmptyCallback.cs', + 'Gst.Base_BaseSrc.cs', + 'Gst.Base_Gst.BaseSharp.CollectDataDestroyNotifyNative.cs', + 'Gst.Base_CollectPadsClipFunction.cs', + 'Gst.Base_PushSrc.cs', + 'Gst.Base_TypeFindHelperGetRangeFunction.cs', + 'Gst.Base_Adapter.cs', + 'Gst.Base_Gst.BaseSharp.CollectPadsEventFunctionNative.cs', + 'Gst.Base_BaseParseFrame.cs', + 'Gst.Base_DataQueue.cs', + 'Gst.Base_CollectDataDestroyNotify.cs', + 'Gst.Base_FlowCombiner.cs', + 'Gst.Base_Gst.BaseSharp.CollectPadsClipFunctionNative.cs', + 'Gst.Base_BaseParseFrameFlags.cs', + 'Gst.Base_Gst.BaseSharp.DataQueueFullCallbackNative.cs', + 'Gst.Base_DataQueueSize.cs', + 'Gst.Base_Gst.BaseSharp.CollectPadsFlushFunctionNative.cs', + 'Gst.Base_CollectPadsQueryFunction.cs', + 'Gst.Base_Gst.BaseSharp.CollectPadsBufferFunctionNative.cs', + 'Gst.Base_CollectPadsStateFlags.cs', + 'Gst.Base_BaseTransform.cs', + 'Gst.Base_ByteReader.cs', + 'Gst.Base_CollectPads.cs', + 'Gst.Base_DataQueueFullCallback.cs', + 'Gst.Base_BitReader.cs', + 'Gst.Base_Gst.BaseSharp.DataQueueEmptyCallbackNative.cs', + 'Gst.Base_ByteWriter.cs', + 'Gst.Base_Gst.BaseSharp.CollectPadsQueryFunctionNative.cs', + 'Gst.Base_QueueArray.cs', + 'Gst.Base_DataQueueCheckFullFunction.cs', + 'Gst.Base_BaseParse.cs', + 'Gst.Base_CollectPadsFlushFunction.cs', + 'Gst.Base_CollectData.cs', + 'Gst.Base_Constants.cs', + 'Gst.Base_CollectPadsEventFunction.cs', + 'Gst.Base_BaseSink.cs', + 'Gst.Base_CollectPadsBufferFunction.cs', + 'Gst.Base_BaseSrcFlags.cs', + 'Gst.Base_DataQueueItem.cs', + 'Gst.PbUtils_EncodingTarget.cs', + 'Gst.PbUtils_EncodingAudioProfile.cs', + 'Gst.PbUtils_EncodingContainerProfile.cs', + 'Gst.PbUtils_SourceSetupHandler.cs', + 'Gst.PbUtils_Global.cs', + 'Gst.PbUtils_DiscovererVideoInfo.cs', + 'Gst.PbUtils_Gst.PbUtilsSharp.AudioVisualizerShaderFuncNative.cs', + 'Gst.PbUtils_InstallPluginsResultFunc.cs', + 'Gst.PbUtils_EncodingProfile.cs', + 'Gst.PbUtils_DiscovererContainerInfo.cs', + 'Gst.PbUtils_InstallPluginsContext.cs', + 'Gst.PbUtils_DiscovererResult.cs', + 'Gst.PbUtils_DiscoveredHandler.cs', + 'Gst.PbUtils_InstallPluginsReturn.cs', + 'Gst.PbUtils_DiscovererStreamInfo.cs', + 'Gst.PbUtils_AudioVisualizerShaderFunc.cs', + 'Gst.PbUtils_AudioVisualizer.cs', + 'Gst.PbUtils_Constants.cs', + 'Gst.PbUtils_Discoverer.cs', + 'Gst.PbUtils_DiscovererSubtitleInfo.cs', + 'Gst.PbUtils_DiscovererSerializeFlags.cs', + 'Gst.PbUtils_DiscovererAudioInfo.cs', + 'Gst.PbUtils_AudioVisualizerShader.cs', + 'Gst.PbUtils_DiscovererInfo.cs', + 'Gst.PbUtils_EncodingVideoProfile.cs', + 'Gst.PbUtils_Gst.PbUtilsSharp.InstallPluginsResultFuncNative.cs', + 'Gst_StaticCaps.cs', + 'Gst_MessageType.cs', + 'Gst_GstSharp.PadUnlinkFunctionNative.cs', + 'Gst_Int64Range.cs', + 'Gst_IPreset.cs', + 'Gst_MetaInfo.cs', + 'Gst_GstSharp.IteratorForeachFunctionNative.cs', + 'Gst_StreamFlags.cs', + 'Gst_TypeFindFunction.cs', + 'Gst_QueryType.cs', + 'Gst_GstSharp.TypeFindFunctionNative.cs', + 'Gst_ClockType.cs', + 'Gst_DeviceProvider.cs', + 'Gst_MiniObjectCopyFunction.cs', + 'Gst_GstSharp.PadForwardFunctionNative.cs', + 'Gst_GstSharp.ValueDeserializeFuncNative.cs', + 'Gst_SyncMessageHandler.cs', + 'Gst_TagMergeFunc.cs', + 'Gst_TimedValue.cs', + 'Gst_PadFlags.cs', + 'Gst_IteratorFoldFunction.cs', + 'Gst_TocLoopType.cs', + 'Gst_PadForwardFunction.cs', + 'Gst_GstSharp.CapsFilterMapFuncNative.cs', + 'Gst_ValueSerializeFunc.cs', + 'Gst_MetaInitFunction.cs', + 'Gst_GstSharp.MetaTransformFunctionNative.cs', + 'Gst_AllocatorFlags.cs', + 'Gst_PluginDesc.cs', + 'Gst_GstSharp.TaskFunctionNative.cs', + 'Gst_ElementCallAsyncFunc.cs', + 'Gst_ValueTable.cs', + 'Gst_Object.cs', + 'Gst_ParamSpecArray.cs', + 'Gst_GstSharp.MetaFreeFunctionNative.cs', + 'Gst_ElementRemovedHandler.cs', + 'Gst_GstSharp.MemoryShareFunctionNative.cs', + 'Gst_MemoryMapFunction.cs', + 'Gst_URIHandlerAdapter.cs', + 'Gst_ClockFlags.cs', + 'Gst_GstSharp.PadGetRangeFunctionNative.cs', + 'Gst_Tracer.cs', + 'Gst_Stream.cs', + 'Gst_PadTemplateFlags.cs', + 'Gst_GstSharp.IteratorItemFunctionNative.cs', + 'Gst_ChildRemovedEventHandler.cs', + 'Gst_ControlBinding.cs', + 'Gst_PluginFlags.cs', + 'Gst_Global.cs', + 'Gst_IteratorResult.cs', + 'Gst_BufferPoolAcquireParams.cs', + 'Gst_Pipeline.cs', + 'Gst_GstSharp.LogFunctionNative.cs', + 'Gst_UnlinkedHandler.cs', + 'Gst_SystemClock.cs', + 'Gst_StreamType.cs', + 'Gst_PadProbeInfo.cs', + 'Gst_DeepElementAddedHandler.cs', + 'Gst_ParamSpecFraction.cs', + 'Gst_CapsMapFunc.cs', + 'Gst_GstSharp.IteratorNextFunctionNative.cs', + 'Gst_PadLinkFunction.cs', + 'Gst_PresetAdapter.cs', + 'Gst_GstSharp.CapsForeachFuncNative.cs', + 'Gst_GstSharp.MemoryMapFunctionNative.cs', + 'Gst_MetaFlags.cs', + 'Gst_PadIterIntLinkFunction.cs', + 'Gst_ProxyPad.cs', + 'Gst_TracerValueScope.cs', + 'Gst_Bitmask.cs', + 'Gst_IteratorForeachFunction.cs', + 'Gst_PluginDependencyFlags.cs', + 'Gst_PluginInitFullFunc.cs', + 'Gst_Caps.cs', + 'Gst_SeekFlags.cs', + 'Gst_DeepNotifyHandler.cs', + 'Gst_GstSharp.MiniObjectFreeFunctionNative.cs', + 'Gst_GstSharp.ElementCallAsyncFuncNative.cs', + 'Gst_PadRemovedHandler.cs', + 'Gst_BusFunc.cs', + 'Gst_MiniObject.cs', + 'Gst_AllocationParams.cs', + 'Gst_MiniObjectFreeFunction.cs', + 'Gst_QOSType.cs', + 'Gst_StreamNotifyHandler.cs', + 'Gst_GstSharp.CapsMapFuncNative.cs', + 'Gst_PadAddedHandler.cs', + 'Gst_PadLinkCheck.cs', + 'Gst_GstSharp.PadLinkFunctionNative.cs', + 'Gst_GstSharp.MiniObjectNotifyNative.cs', + 'Gst_FlowReturn.cs', + 'Gst_IteratorCopyFunction.cs', + 'Gst_LibraryError.cs', + 'Gst_IteratorNextFunction.cs', + 'Gst_Memory.cs', + 'Gst_GstSharp.TagMergeFuncNative.cs', + 'Gst_TypeFind.cs', + 'Gst_GstSharp.BusFuncNative.cs', + 'Gst_GstSharp.TagForeachFuncNative.cs', + 'Gst_PadProbeReturn.cs', + 'Gst_GstSharp.MemoryUnmapFullFunctionNative.cs', + 'Gst_Meta.cs', + 'Gst_BufferCopyFlags.cs', + 'Gst_TaskThreadFunc.cs', + 'Gst_Toc.cs', + 'Gst_ValueCompareFunc.cs', + 'Gst_Clock.cs', + 'Gst_TracerValueFlags.cs', + 'Gst_Uri.cs', + 'Gst_URIError.cs', + 'Gst_TaskFunction.cs', + 'Gst_GstSharp.ValueSerializeFuncNative.cs', + 'Gst_Structure.cs', + 'Gst_Buffer.cs', + 'Gst_StreamCollection.cs', + 'Gst_Application.cs', + 'Gst_PadProbeCallback.cs', + 'Gst_GstSharp.PadActivateModeFunctionNative.cs', + 'Gst_GstSharp.BufferListFuncNative.cs', + 'Gst_GstSharp.IteratorResyncFunctionNative.cs', + 'Gst_MemoryFlags.cs', + 'Gst_MiniObjectDisposeFunction.cs', + 'Gst_GstSharp.PadProbeCallbackNative.cs', + 'Gst_MiniObjectFlags.cs', + 'Gst_GstSharp.IteratorCopyFunctionNative.cs', + 'Gst_IteratorItem.cs', + 'Gst_PadProbeType.cs', + 'Gst_ParseFlags.cs', + 'Gst_ValueList.cs', + 'Gst_DebugLevel.cs', + 'Gst_StaticPadTemplate.cs', + 'Gst_GstSharp.PadQueryFunctionNative.cs', + 'Gst_ClockEntry.cs', + 'Gst_BufferList.cs', + 'Gst_GstSharp.StructureMapFuncNative.cs', + 'Gst_MapFlags.cs', + 'Gst_DebugMessage.cs', + 'Gst_ControlSourceGetValueArray.cs', + 'Gst_PluginFeatureFilter.cs', + 'Gst_ITagSetter.cs', + 'Gst_ElementFactory.cs', + 'Gst_DateTime.cs', + 'Gst_PadGetRangeFunction.cs', + 'Gst_ProgressType.cs', + 'Gst_MetaTransformCopy.cs', + 'Gst_ProviderUnhiddenHandler.cs', + 'Gst_GstSharp.DebugFuncPtrNative.cs', + 'Gst_DebugColorFlags.cs', + 'Gst_MiniObjectNotify.cs', + 'Gst_AtomicQueue.cs', + 'Gst_MetaFreeFunction.cs', + 'Gst_DynamicTypeFactory.cs', + 'Gst_MemoryUnmapFullFunction.cs', + 'Gst_BufferFlags.cs', + 'Gst_GstSharp.MemoryIsSpanFunctionNative.cs', + 'Gst_ParentBufferMeta.cs', + 'Gst_GstSharp.PadChainListFunctionNative.cs', + 'Gst_TagFlag.cs', + 'Gst_CapsFlags.cs', + 'Gst_Pad.cs', + 'Gst_PluginFilter.cs', + 'Gst_PadChainFunction.cs', + 'Gst_ValueDeserializeFunc.cs', + 'Gst_StructureMapFunc.cs', + 'Gst_Value.cs', + 'Gst_IteratorResyncFunction.cs', + 'Gst_ClockCallback.cs', + 'Gst_SchedulingFlags.cs', + 'Gst_ControlBindingConvert.cs', + 'Gst_Allocator.cs', + 'Gst_BufferingMode.cs', + 'Gst_FlagSet.cs', + 'Gst_Element.cs', + 'Gst_GstSharp.IteratorFoldFunctionNative.cs', + 'Gst_PluginFeature.cs', + 'Gst_ChildAddedEventHandler.cs', + 'Gst_GstSharp.MemoryUnmapFunctionNative.cs', + 'Gst_MemoryCopyFunction.cs', + 'Gst_PluginInitFunc.cs', + 'Gst_DebugCategory.cs', + 'Gst_DeviceMonitor.cs', + 'Gst_TocSetterAdapter.cs', + 'Gst_PluginError.cs', + 'Gst_DeepElementRemovedHandler.cs', + 'Gst_GhostPad.cs', + 'Gst_StructureChangeType.cs', + 'Gst_TagForeachFunc.cs', + 'Gst_BufferPoolAcquireFlags.cs', + 'Gst_GstSharp.ControlBindingConvertNative.cs', + 'Gst_GstSharp.MiniObjectDisposeFunctionNative.cs', + 'Gst_Debug.cs', + 'Gst_DeviceProviderFactory.cs', + 'Gst_PadQueryFunction.cs', + 'Gst_TocScope.cs', + 'Gst_PadUnlinkFunction.cs', + 'Gst_GstSharp.ControlSourceGetValueNative.cs', + 'Gst_QueryTypeFlags.cs', + 'Gst_CoreError.cs', + 'Gst_GstSharp.ControlSourceGetValueArrayNative.cs', + 'Gst_Sample.cs', + 'Gst_Device.cs', + 'Gst_TagMergeMode.cs', + 'Gst_ProtectionMeta.cs', + 'Gst_ElementFlags.cs', + 'Gst_TagScope.cs', + 'Gst_PadActivateFunction.cs', + 'Gst_GstSharp.StructureFilterMapFuncNative.cs', + 'Gst_Event.cs', + 'Gst_GstSharp.PadEventFullFunctionNative.cs', + 'Gst_GstSharp.PadActivateFunctionNative.cs', + 'Gst_ClockReturn.cs', + 'Gst_MemoryMapFullFunction.cs', + 'Gst_GstSharp.PluginFilterNative.cs', + 'Gst_ParseContext.cs', + 'Gst_LockFlags.cs', + 'Gst_StackTraceFlags.cs', + 'Gst_GstSharp.TaskPoolFunctionNative.cs', + 'Gst_Task.cs', + 'Gst_GstSharp.ClockCallbackNative.cs', + 'Gst_Registry.cs', + 'Gst_TracerRecord.cs', + 'Gst_Query.cs', + 'Gst_PadEventFunction.cs', + 'Gst_GstSharp.IteratorFreeFunctionNative.cs', + 'Gst_TocEntryType.cs', + 'Gst_Poll.cs', + 'Gst_MemoryShareFunction.cs', + 'Gst_ResourceError.cs', + 'Gst_Tag.cs', + 'Gst_BinFlags.cs', + 'Gst_PadLinkReturn.cs', + 'Gst_Bus.cs', + 'Gst_GstSharp.PadIterIntLinkFunctionNative.cs', + 'Gst_Segment.cs', + 'Gst_GstSharp.PadChainFunctionNative.cs', + 'Gst_CapsIntersectMode.cs', + 'Gst_TaskPool.cs', + 'Gst_CapsForeachFunc.cs', + 'Gst_TypeFindFactory.cs', + 'Gst_State.cs', + 'Gst_Message.cs', + 'Gst_Context.cs', + 'Gst_LogFunction.cs', + 'Gst_TagSetterAdapter.cs', + 'Gst_GstSharp.PluginInitFullFuncNative.cs', + 'Gst_ParseError.cs', + 'Gst_IURIHandler.cs', + 'Gst_PadChainListFunction.cs', + 'Gst_MemoryUnmapFunction.cs', + 'Gst_StateChangeReturn.cs', + 'Gst_PadTemplate.cs', + 'Gst_StreamError.cs', + 'Gst_ObjectFlags.cs', + 'Gst_GstSharp.PadStickyEventsForeachFunctionNative.cs', + 'Gst_BusFlags.cs', + 'Gst_ParamArray.cs', + 'Gst_MessageHandler.cs', + 'Gst_BusSyncHandler.cs', + 'Gst_ClockEntryType.cs', + 'Gst_StreamStatusType.cs', + 'Gst_CapsFeatures.cs', + 'Gst_PadMode.cs', + 'Gst_Parse.cs', + 'Gst_GstSharp.PadEventFunctionNative.cs', + 'Gst_TaskState.cs', + 'Gst_DebugFuncPtr.cs', + 'Gst_Iterator.cs', + 'Gst_Rank.cs', + 'Gst_MapInfo.cs', + 'Gst_GstSharp.ValueCompareFuncNative.cs', + 'Gst_FeatureAddedHandler.cs', + 'Gst_ControlSourceGetValue.cs', + 'Gst_BufferPool.cs', + 'Gst_Format.cs', + 'Gst_Plugin.cs', + 'Gst_PadActivateModeFunction.cs', + 'Gst_PadDirection.cs', + 'Gst_GstSharp.BufferForeachMetaFuncNative.cs', + 'Gst_GstSharp.StructureForeachFuncNative.cs', + 'Gst_DebugColorMode.cs', + 'Gst_GstSharp.BusSyncHandlerNative.cs', + 'Gst_SyncedHandler.cs', + 'Gst_DoLatencyHandler.cs', + 'Gst_BusSyncReply.cs', + 'Gst_PadPresence.cs', + 'Gst_ControlSource.cs', + 'Gst_GstSharp.PluginInitFuncNative.cs', + 'Gst_PadEventFullFunction.cs', + 'Gst_SearchMode.cs', + 'Gst_ChildProxyAdapter.cs', + 'Gst_IChildProxy.cs', + 'Gst_PadStickyEventsForeachFunction.cs', + 'Gst_SeekType.cs', + 'Gst_GstSharp.MemoryMapFullFunctionNative.cs', + 'Gst_GstSharp.MiniObjectCopyFunctionNative.cs', + 'Gst_BufferListFunc.cs', + 'Gst_MemoryIsSpanFunction.cs', + 'Gst_ITocSetter.cs', + 'Gst_MetaTransformFunction.cs', + 'Gst_Constants.cs', + 'Gst_PadCreatedEventHandler.cs', + 'Gst_ProviderHiddenHandler.cs', + 'Gst_StructureFilterMapFunc.cs', + 'Gst_PluginAddedHandler.cs', + 'Gst_ValueArray.cs', + 'Gst_DebugGraphDetails.cs', + 'Gst_IteratorItemFunction.cs', + 'Gst_StructureForeachFunc.cs', + 'Gst_EventType.cs', + 'Gst_ElementAddedHandler.cs', + 'Gst_Util.cs', + 'Gst_CapsFilterMapFunc.cs', + 'Gst_GstSharp.TaskThreadFuncNative.cs', + 'Gst_PipelineFlags.cs', + 'Gst_FormatDefinition.cs', + 'Gst_URIType.cs', + 'Gst_ParamFraction.cs', + 'Gst_TracerFactory.cs', + 'Gst_GstSharp.MetaInitFunctionNative.cs', + 'Gst_TypeFindProbability.cs', + 'Gst_Bin.cs', + 'Gst_GstSharp.MemoryCopyFunctionNative.cs', + 'Gst_StateChange.cs', + 'Gst_LinkedHandler.cs', + 'Gst_GstSharp.PluginFeatureFilterNative.cs', + 'Gst_TocEntry.cs', + 'Gst_EventTypeFlags.cs', + 'Gst_IteratorFreeFunction.cs', + 'Gst_TagList.cs', + 'Gst_TaskPoolFunction.cs', + 'Gst_BufferForeachMetaFunc.cs', + 'Gst_SegmentFlags.cs', + 'Gst_PollFD.cs', + 'Gst.Tags_TagXmpWriterAdapter.cs', + 'Gst.Tags_Global.cs', + 'Gst.Tags_TagMux.cs', + 'Gst.Tags_TagDemux.cs', + 'Gst.Tags_ITagXmpWriter.cs', + 'Gst.Tags_TagImageType.cs', + 'Gst.Tags_TagLicenseFlags.cs', + 'Gst.Tags_TagDemuxResult.cs', + 'Gst.Tags_Constants.cs', + 'Gst.FFT_FFTS16.cs', + 'Gst.FFT_Global.cs', + 'Gst.FFT_FFTF64.cs', + 'Gst.FFT_FFTF64Complex.cs', + 'Gst.FFT_FFTS32.cs', + 'Gst.FFT_FFTWindow.cs', + 'Gst.FFT_FFTF32.cs', + 'Gst.FFT_FFTF32Complex.cs', + 'Gst.FFT_FFTS16Complex.cs', + 'Gst.FFT_FFTS32Complex.cs', + 'Gst.FFT_Constants.cs', + 'Gst.App_NewSampleHandler.cs', + 'Gst.App_AppSrc.cs', + 'Gst.App_SeekDataHandler.cs', + 'Gst.App_TryPullPrerollEventHandler.cs', + 'Gst.App_Global.cs', + 'Gst.App_NeedDataHandler.cs', + 'Gst.App_AppSink.cs', + 'Gst.App_NewPrerollHandler.cs', + 'Gst.App_TryPullSampleEventHandler.cs', + 'Gst.App_AppStreamType.cs', + 'Gst.App_AppSrcCallbacks.cs', + 'Gst.App_AppSinkCallbacks.cs', + 'Gst.App_PushSampleEventHandler.cs', + 'Gst.App_PushBufferEventHandler.cs', + 'Gst.App_Constants.cs', + 'Gst.App_EndOfStreamEventHandler.cs', + 'Gst.Video_VideoDitherFlags.cs', + 'Gst.Video_VideoCodecFrameFlags.cs', + 'Gst.Video_VideoInterlaceMode.cs', + 'Gst.Video_VideoGammaMode.cs', + 'Gst.Video_VideoMultiviewMode.cs', + 'Gst.Video_VideoMultiviewFramePacking.cs', + 'Gst.Video_VideoFormatPack.cs', + 'Gst.Video_VideoAlignment.cs', + 'Gst.Video_VideoDither.cs', + 'Gst.Video_NavigationQueryType.cs', + 'Gst.Video_Gst.VideoSharp.VideoGLTextureUploadNative.cs', + 'Gst.Video_NavigationEventType.cs', + 'Gst.Video_VideoFormat.cs', + 'Gst.Video_IVideoDirection.cs', + 'Gst.Video_VideoTimeCode.cs', + 'Gst.Video_NavigationAdapter.cs', + 'Gst.Video_Global.cs', + 'Gst.Video_VideoResamplerFlags.cs', + 'Gst.Video_VideoInfo.cs', + 'Gst.Video_ColorBalanceType.cs', + 'Gst.Video_VideoScaler.cs', + 'Gst.Video_VideoDecoder.cs', + 'Gst.Video_VideoMetaTransform.cs', + 'Gst.Video_VideoAffineTransformationMeta.cs', + 'Gst.Video_IVideoOverlay.cs', + 'Gst.Video_VideoFlags.cs', + 'Gst.Video_IColorBalance.cs', + 'Gst.Video_VideoChromaResample.cs', + 'Gst.Video_VideoTimeCodeInterval.cs', + 'Gst.Video_VideoSink.cs', + 'Gst.Video_VideoPackFlags.cs', + 'Gst.Video_VideoResampler.cs', + 'Gst.Video_VideoColorRange.cs', + 'Gst.Video_VideoOrientationMethod.cs', + 'Gst.Video_Gst.VideoSharp.VideoFormatPackNative.cs', + 'Gst.Video_VideoColorPrimariesInfo.cs', + 'Gst.Video_VideoFilter.cs', + 'Gst.Video_VideoChromaMode.cs', + 'Gst.Video_VideoDirectionAdapter.cs', + 'Gst.Video_VideoColorMatrix.cs', + 'Gst.Video_VideoGLTextureUpload.cs', + 'Gst.Video_INavigation.cs', + 'Gst.Video_VideoGLTextureOrientation.cs', + 'Gst.Video_VideoFormatFlags.cs', + 'Gst.Video_VideoFrameFlags.cs', + 'Gst.Video_VideoOverlayCompositionMeta.cs', + 'Gst.Video_VideoOverlayRectangle.cs', + 'Gst.Video_VideoTileType.cs', + 'Gst.Video_Gst.VideoSharp.VideoAffineTransformationGetMatrixNative.cs', + 'Gst.Video_VideoGLTextureUploadMeta.cs', + 'Gst.Video_VideoFormatInfo.cs', + 'Gst.Video_VideoFormatUnpack.cs', + 'Gst.Video_VideoTimeCodeConfig.cs', + 'Gst.Video_VideoTransferFunction.cs', + 'Gst.Video_Gst.VideoSharp.VideoConvertSampleCallbackNative.cs', + 'Gst.Video_VideoChromaSite.cs', + 'Gst.Video_VideoColorimetry.cs', + 'Gst.Video_ValueChangedEventHandler.cs', + 'Gst.Video_VideoScalerFlags.cs', + 'Gst.Video_VideoAlphaMode.cs', + 'Gst.Video_VideoResamplerMethod.cs', + 'Gst.Video_VideoCodecFrame.cs', + 'Gst.Video_Gst.VideoSharp.VideoFormatUnpackNative.cs', + 'Gst.Video_ValueChangedHandler.cs', + 'Gst.Video_VideoRectangle.cs', + 'Gst.Video_VideoConvertSampleCallback.cs', + 'Gst.Video_NavigationMessageType.cs', + 'Gst.Video_VideoEncoder.cs', + 'Gst.Video_VideoTimeCodeMeta.cs', + 'Gst.Video_VideoOverlayComposition.cs', + 'Gst.Video_VideoColorPrimaries.cs', + 'Gst.Video_VideoTimeCodeFlags.cs', + 'Gst.Video_VideoBufferPool.cs', + 'Gst.Video_VideoOrientationAdapter.cs', + 'Gst.Video_VideoChromaMethod.cs', + 'Gst.Video_IVideoOrientation.cs', + 'Gst.Video_VideoFrameMapFlags.cs', + 'Gst.Video_VideoCropMeta.cs', + 'Gst.Video_VideoBufferFlags.cs', + 'Gst.Video_VideoFrame.cs', + 'Gst.Video_VideoMeta.cs', + 'Gst.Video_VideoConverter.cs', + 'Gst.Video_ColorBalanceAdapter.cs', + 'Gst.Video_VideoChromaFlags.cs', + 'Gst.Video_VideoCodecState.cs', + 'Gst.Video_VideoGLTextureType.cs', + 'Gst.Video_Constants.cs', + 'Gst.Video_ColorBalanceChannel.cs', + 'Gst.Video_VideoOverlayFormatFlags.cs', + 'Gst.Video_VideoMultiviewFlagsSet.cs', + 'Gst.Video_NavigationCommand.cs', + 'Gst.Video_VideoDitherMethod.cs', + 'Gst.Video_VideoOverlayAdapter.cs', + 'Gst.Video_VideoRegionOfInterestMeta.cs', + 'Gst.Video_VideoPrimariesMode.cs', + 'Gst.Video_VideoFieldOrder.cs', + 'Gst.Video_VideoAffineTransformationGetMatrix.cs', + 'Gst.Video_VideoMatrixMode.cs', + 'Gst.Video_VideoTileMode.cs', + 'Gst.Video_VideoMultiviewFlags.cs', + 'GtkSharp_ObjectManager.cs', + 'Gst.Controller_InterpolationControlSource.cs', + 'Gst.Controller_ValueAddedHandler.cs', + 'Gst.Controller_Global.cs', + 'Gst.Controller_TimedValueControlSource.cs', + 'Gst.Controller_LFOControlSource.cs', + 'Gst.Controller_LFOWaveform.cs', + 'Gst.Controller_ProxyControlBinding.cs', + 'Gst.Controller_ARGBControlBinding.cs', + 'Gst.Controller_ValueRemovedHandler.cs', + 'Gst.Controller_Gst.ControllerSharp.DirectControlBindingConvertGValueNative.cs', + 'Gst.Controller_ValueChangedHandler.cs', + 'Gst.Controller_ControlPoint.cs', + 'Gst.Controller_DirectControlBinding.cs', + 'Gst.Controller_TriggerControlSource.cs', + 'Gst.Controller_InterpolationMode.cs', + 'Gst.Controller_DirectControlBindingConvertGValue.cs', + 'Gst.Controller_Constants.cs', + 'Gst.Controller_Gst.ControllerSharp.DirectControlBindingConvertValueNative.cs', + 'Gst.Controller_DirectControlBindingConvertValue.cs', + 'Gst.Audio_Gst.AudioSharp.AudioRingBufferCallbackNative.cs', + 'Gst.Audio_AudioRingBufferCallback.cs', + 'Gst.Audio_AudioCdSrcTrack.cs', + 'Gst.Audio_AudioFormatPack.cs', + 'Gst.Audio_Global.cs', + 'Gst.Audio_AudioCdSrcMode.cs', + 'Gst.Audio_AudioClockGetTimeFunc.cs', + 'Gst.Audio_AudioResamplerMethod.cs', + 'Gst.Audio_Gst.AudioSharp.AudioFormatPackNative.cs', + 'Gst.Audio_AudioFormatInfo.cs', + 'Gst.Audio_AudioDownmixMeta.cs', + 'Gst.Audio_AudioConverterFlags.cs', + 'Gst.Audio_AudioClippingMeta.cs', + 'Gst.Audio_AudioResampler.cs', + 'Gst.Audio_Gst.AudioSharp.AudioFormatUnpackNative.cs', + 'Gst.Audio_AudioSrc.cs', + 'Gst.Audio_AudioRingBufferFormatType.cs', + 'Gst.Audio_AudioSink.cs', + 'Gst.Audio_StreamVolumeFormat.cs', + 'Gst.Audio_AudioBaseSrcSlaveMethod.cs', + 'Gst.Audio_AudioQuantizeFlags.cs', + 'Gst.Audio_AudioRingBuffer.cs', + 'Gst.Audio_AudioFormatUnpack.cs', + 'Gst.Audio_AudioEncoder.cs', + 'Gst.Audio_AudioBaseSinkDiscontReason.cs', + 'Gst.Audio_Gst.AudioSharp.AudioBaseSinkCustomSlavingCallbackNative.cs', + 'Gst.Audio_AudioNoiseShapingMethod.cs', + 'Gst.Audio_AudioFormat.cs', + 'Gst.Audio_AudioRingBufferState.cs', + 'Gst.Audio_AudioChannelMixer.cs', + 'Gst.Audio_AudioDecoder.cs', + 'Gst.Audio_AudioCdSrc.cs', + 'Gst.Audio_AudioFlags.cs', + 'Gst.Audio_AudioResamplerFlags.cs', + 'Gst.Audio_AudioFilter.cs', + 'Gst.Audio_AudioClock.cs', + 'Gst.Audio_AudioLayout.cs', + 'Gst.Audio_AudioBaseSink.cs', + 'Gst.Audio_AudioQuantize.cs', + 'Gst.Audio_AudioPackFlags.cs', + 'Gst.Audio_Gst.AudioSharp.AudioClockGetTimeFuncNative.cs', + 'Gst.Audio_IStreamVolume.cs', + 'Gst.Audio_AudioRingBufferSpec.cs', + 'Gst.Audio_AudioFormatFlags.cs', + 'Gst.Audio_AudioDitherMethod.cs', + 'Gst.Audio_AudioBaseSrc.cs', + 'Gst.Audio_AudioChannelMixerFlags.cs', + 'Gst.Audio_Constants.cs', + 'Gst.Audio_AudioInfo.cs', + 'Gst.Audio_AudioBaseSinkSlaveMethod.cs', + 'Gst.Audio_AudioBaseSinkCustomSlavingCallback.cs', + 'Gst.Audio_StreamVolumeAdapter.cs', + 'Gst.Audio_AudioConverter.cs', + 'Gst.Audio_AudioResamplerFilterMode.cs', + 'Gst.Audio_AudioChannelPosition.cs', + 'Gst.Audio_AudioResamplerFilterInterpolation.cs', + 'Gst.Net_NetClientClock.cs', + 'Gst.Net_Global.cs', + 'Gst.Net_PtpClock.cs', + 'Gst.Net_Gst.NetSharp.PtpStatisticsCallbackNative.cs', + 'Gst.Net_NetControlMessageMeta.cs', + 'Gst.Net_NtpClock.cs', + 'Gst.Net_NetAddressMeta.cs', + 'Gst.Net_NetTimePacket.cs', + 'Gst.Net_Constants.cs', + 'Gst.Net_PtpStatisticsCallback.cs', + 'Gst.Net_NetTimeProvider.cs', + 'Gst.Rtp_RTCPPacket.cs', + 'Gst.Rtp_RTPPayload.cs', + 'Gst.Rtp_Global.cs', + 'Gst.Rtp_RTCPBuffer.cs', + 'Gst.Rtp_RTCPFBType.cs', + 'Gst.Rtp_RTCPType.cs', + 'Gst.Rtp_RTCPSDESType.cs', + 'Gst.Rtp_RTPProfile.cs', + 'Gst.Rtp_RTPBufferFlags.cs', + 'Gst.Rtp_RTPBaseDepayload.cs', + 'Gst.Rtp_RTPPayloadInfo.cs', + 'Gst.Rtp_RTPBasePayload.cs', + 'Gst.Rtp_RTPBufferMapFlags.cs', + 'Gst.Rtp_Constants.cs', + 'Gst.Rtp_RTPBuffer.cs', + 'Gst.Rtp_RTPBaseAudioPayload.cs' +] + +source_gen = custom_target('gst_codegen', + input: raw_api_fname, + output: generated_sources, + command: [ + generate_api, + '--api-raw', '@INPUT@', + '--gapi-fixup', gapi_fixup, + '--metadata', metadata_fname, + '--gapi-codegen', gapi_codegen, + '--extra-includes=' + glib_api_includes, + '--extra-includes=' + gio_api_includes, + '--glue-file', gluefile, + '--glue-includes', glueincludes, + '--out', meson.current_build_dir(), + '--files', ';'.join(generated_sources), + '--assembly-name', meson.project_name(), + '--glue-libname', 'libgstreamersharpglue-1.0.0.dll', + ], + depend_files: [raw_api_fname], + depends: codegen_dependencies) + diff --git a/sources/meson.build b/sources/meson.build new file mode 100644 index 0000000000..d6b10e02e5 --- /dev/null +++ b/sources/meson.build @@ -0,0 +1,59 @@ +raw_api_fname = join_paths(meson.current_source_dir(), meson.project_name() + '-api.raw') +metadata_fname = join_paths(meson.current_source_dir(), meson.project_name() + '.metadata') +snk = join_paths(meson.current_source_dir(), '../', meson.project_name() + '.snk') + +glueincludes = 'gst/gst.h,gst/app/app.h,gst/audio/audio.h,gst/base/base.h,gst/controller/controller.h,gst/fft/fft.h,gst/net/net.h,gst/pbutils/gstaudiovisualizer.h,gst/pbutils/pbutils.h,gst/rtp/rtp.h,gst/rtsp/rtsp.h,gst/sdp/sdp.h,gst/tag/tag.h,gst/video/video.h' +gluefile = join_paths(meson.current_build_dir(), 'generate.c') + +sources = [ + 'custom/Adapter.cs', + 'custom/Application.cs', + 'custom/AppSink.cs', + 'custom/AppSrc.cs', + 'custom/AudioFilter.cs', + 'custom/Bin.cs', + 'custom/Buffer.cs', + 'custom/Bus.cs', + 'custom/Caps.cs', + 'custom/DeviceProvider.cs', + 'custom/DynamicSignal.cs', + 'custom/Element.cs', + 'custom/FFTF32.cs', + 'custom/Iterator.cs', + 'custom/MapInfo.cs', + 'custom/Message.cs', + 'custom/MiniObject.cs', + 'custom/NavigationAdapter.cs', + 'custom/Object.cs', + 'custom/Pad.cs', + 'custom/Pipeline.cs', + 'custom/TagList.cs', + 'custom/Value.cs', + 'custom/Version.cs', + 'custom/VideoGLUploadMeta.cs' +] + +subdir('generated') + +# Install with gacutil_install.py from gtk-sharp. +gst_sharp = library('gstreamer-sharp', source_gen, sources, + cs_args: ['-nowarn:169', '-nowarn:108', '-nowarn:114', '-unsafe', + '-keyfile:' + snk], + dependencies: [glib_sharp_dep, gio_sharp_dep]) + +gluegen = custom_target('gluegen', + input: raw_api_fname, + output: 'generate.c', + command: [generate_api, '--fakeglue'], + depends: [source_gen]) + +library('gstreamersharpglue-1.0.0', gluegen, 'glue/gobject.c', dependencies: gst_deps) + +gst_sharp_dep = declare_dependency(dependencies: [glib_sharp_dep, gio_sharp_dep], + link_with: gst_sharp) +meson.add_install_script(gacutil_install, meson.project_name(), gst_sharp.full_path()) + +configure_file( + input: '../out/gstreamer-sharp.dll.config', + output: 'gstreamer-sharp.dll.config', + configuration: configuration_data()) diff --git a/subprojects/gtk-sharp.wrap b/subprojects/gtk-sharp.wrap new file mode 100644 index 0000000000..79226f6253 --- /dev/null +++ b/subprojects/gtk-sharp.wrap @@ -0,0 +1,4 @@ +[wrap-git] +directory=gtk-sharp +url=https://github.com/openmedicus/gtk-sharp.git +revision=master