From 591955632df31d1341769c5e4b8147641b1fcf56 Mon Sep 17 00:00:00 2001 From: Sebastian Fricke Date: Thu, 17 Feb 2022 21:44:30 +0100 Subject: [PATCH] Allow running gst-uninstalled when GStreamer is a subproject As described in Merge request 222, the previous solution is not the best possible solution and was also missing documentation. Adjust the suggestion to the current GStreamer mono-repository. And apply this change after reverting the previous commit. Part-of: --- gst-env.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/gst-env.py b/gst-env.py index 384acb8d5d..d4a0ef6885 100755 --- a/gst-env.py +++ b/gst-env.py @@ -390,10 +390,16 @@ def get_subprocess_env(options, gst_version): os.path.join(options.builddir, root), options.sysroot) - with open(os.path.join(options.builddir, 'GstPluginsPath.json')) as f: - for plugin_path in json.load(f): - prepend_env_var(env, 'GST_PLUGIN_PATH', plugin_path, - options.sysroot) + # Search for the Plugin paths file either in the build directory root + # or check if gstreamer is a subproject of another project + for sub_directories in [[], ['subprojects', 'gstreamer']]: + plugin_paths = os.path.join(options.builddir, *sub_directories, 'GstPluginsPath.json') + if os.path.exists(plugin_paths): + with open(plugin_paths) as f: + for plugin_path in json.load(f): + prepend_env_var(env, 'GST_PLUGIN_PATH', plugin_path, + options.sysroot) + break # Sort to iterate in a consistent order (`set`s and `hash`es are randomized) for p in sorted(paths):