Use bindinator as a subproject
authorThibault Saunier <tsaunier@igalia.com>
Thu, 17 May 2018 16:03:55 +0000 (12:03 -0400)
committerThibault Saunier <tsaunier@igalia.com>
Tue, 5 Jun 2018 14:55:15 +0000 (10:55 -0400)
README.md
meson.build
subprojects/bindinator.wrap [new file with mode: 0644]

index 04dbfe2..63675d6 100644 (file)
--- 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
 
index ea9314e..0b92311 100644 (file)
@@ -157,26 +157,30 @@ custom_target('GstSharp-nuget',
 )
 
 subdir('samples')
-
-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
+subdir('Tests')
+
+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 (file)
index 0000000..c407526
--- /dev/null
@@ -0,0 +1,4 @@
+[wrap-git]
+directory=bindinator
+url=https://github.com/GLibSharp/bindinator.git
+revision=master