meson: Properly find where GStreamer plugins are when using subprojects
authorThibault Saunier <thibault.saunier@osg.samsung.com>
Mon, 5 Sep 2016 20:43:13 +0000 (17:43 -0300)
committerThibault Saunier <thibault.saunier@osg.samsung.com>
Mon, 5 Sep 2016 21:20:35 +0000 (18:20 -0300)
And fix building with meson 0.34

meson.build
tests/check/getpluginsdir [new file with mode: 0644]
tests/check/meson.build

index 1b446e528c2d784ab31ff5cdc686a00942264aca..6b379ade74f48cd5bc45a8657bbcce67e6a0f418 100644 (file)
@@ -152,7 +152,7 @@ gst_check_dep = dependency('gstreamer-check-1.0', version : gst_req,
 gst_controller_dep = dependency('gstreamer-controller-1.0', version : gst_req,
   fallback : ['gstreamer', 'gst_controller_dep'])
 
-vs_module_defs_dir = meson.source_root() + '/win32/common/'
+vs_module_defs_dir = meson.current_source_dir() + '/win32/common/'
 
 # Used by the *_mkenum.py helper scripts
 glib_mkenums = find_program('glib-mkenums')
diff --git a/tests/check/getpluginsdir b/tests/check/getpluginsdir
new file mode 100644 (file)
index 0000000..102e3c8
--- /dev/null
@@ -0,0 +1,25 @@
+#!/usr/bin/env python3
+
+import os
+import sys
+import subprocess
+
+builddir = os.environ['MESON_BUILD_ROOT']
+
+res = ''
+args = sys.argv[1:]
+for i in range(0, len(args), 2):
+    project = args[i]
+    pkg_name = args[i + 1]
+    path = os.path.join(builddir, 'subprojects', project)
+    if os.path.exists(path):
+        res += ':' + path
+    else:
+        try:
+            res += ':' + subprocess.check_output(['pkg-config',
+                                                  '--variable=pluginsdir',
+                                                  pkg_name]).decode()
+        except subprocess.CalledProcessError:
+            exit(1)
+
+print(res.strip(":"))
index e60aa8175e3fd99a2b092512b2e82d86278d0980..c7527d2e0a9209a965bdedeb50cec1847dcb258d 100644 (file)
@@ -85,7 +85,8 @@ test_defines = [
   '-DGST_USE_UNSTABLE_API',
 ]
 
-runcmd = run_command('pkg-config', '--variable=pluginsdir', 'gstreamer-1.0')
+getpluginsdir = find_program('getpluginsdir')
+runcmd = run_command(getpluginsdir, 'gstreamer', 'gstreamer-1.0')
 if runcmd.returncode() == 0
   core_plugins_dir = runcmd.stdout().strip()
   message('Using GStreamer plug-ins in ' + core_plugins_dir)