diff --git a/README.md b/README.md index 04dbfe2c2c..63675d65c2 100644 --- a/README.md +++ b/README.md @@ -34,13 +34,12 @@ is triggered right after. Updating to new GStreamer version -------------------------------- -* Make sure [bindinator] is installed on the system - -Make sure you are in an environement where latest `.gir` files are available (either install -or through the `$GI_TYPELIB_PATH` env var). +Make sure you are in an environement where latest `.gir` files are available (either installed +or through the `$GI_TYPELIB_PATH` env var), those files are automatically copied to `girs/`. ninja -C update-all +* Verify newly copied gir files in `girs/` and `git add` them * Verify newly generated code and `git add` files in `sources/generated/` and `ges/generated` * Commit diff --git a/meson.build b/meson.build index ea9314eb6a..0b92311654 100644 --- a/meson.build +++ b/meson.build @@ -157,26 +157,30 @@ custom_target('GstSharp-nuget', ) subdir('samples') +subdir('Tests') -bindinate = find_program('bindinate', required: false) -if bindinate.found() - run_target('bindinate_gstreamer', - command: [bindinate, - '--name=gstreamer', '--regenerate=true', - '--merge-with=GstApp-1.0,GstAudio-1.0,GstBase-1.0,GstController-1.0,GstNet-1.0,GstPbutils-1.0,GstRtp-1.0,GstRtsp-1.0,GstSdp-1.0,GstTag-1.0,GstVideo-1.0', - '--gir=Gst-1.0', - '--copy-girs=@0@'.format(join_paths(meson.current_source_dir(), 'girs'))], - depends: [] -) -run_target('bindinate_ges', - command: ['sh', '-c', - '''bindinate --name=gst-editing-services --regenerate=true --gir=GES-1.0 && mv @0@/sources/gst-editing-services-sharp-api.raw @0@/ges/gst-editing-services-api.raw '''.format( - meson.current_source_dir()) - ] - ) - python3 = import('python3').find_python() - run_target('update-code', command: [find_program('update_sources.py')]) - run_target('update-all', command: [find_program('update_sources.py'), 'bindinate']) -endif - -subdir('Tests') \ No newline at end of file +bindinator = subproject('bindinator', default_options: ['gapi_fixup=@0@'.format(gapi_fixup)]) +if bindinator.get_variable('found') + bindinate = bindinator.get_variable('bindinate') + run_target('bindinate_gstreamer', + command: [bindinate, + '--name=gstreamer', '--regenerate=true', + '--merge-with=GstApp-1.0,GstAudio-1.0,GstBase-1.0,GstController-1.0,GstNet-1.0,GstPbutils-1.0,GstRtp-1.0,GstRtsp-1.0,GstSdp-1.0,GstTag-1.0,GstVideo-1.0', + '--gir=Gst-1.0', + '--copy-girs=@0@'.format(join_paths(meson.current_source_dir(), 'girs'))], + depends: [] + ) + run_target('bindinate_ges', + command: ['sh', '-c', + '''@0@ --name=gst-editing-services --regenerate=true --gir=GES-1.0 && mv @1@/sources/gst-editing-services-sharp-api.raw @1@/ges/gst-editing-services-api.raw '''.format( + bindinate.path(), + meson.current_source_dir()), + ], + depends: [] + ) + python3 = import('python3').find_python() + run_target('update-code', command: [find_program('update_sources.py')]) + run_target('update-all', command: [find_program('update_sources.py'), 'bindinate']) +else + warning('Bindinator not usable as some required dependencies are not avalaible.') +endif \ No newline at end of file diff --git a/subprojects/bindinator.wrap b/subprojects/bindinator.wrap new file mode 100644 index 0000000000..c407526ba8 --- /dev/null +++ b/subprojects/bindinator.wrap @@ -0,0 +1,4 @@ +[wrap-git] +directory=bindinator +url=https://github.com/GLibSharp/bindinator.git +revision=master