TYPELIB_REG = re.compile(r'.*\.typelib$')
SHAREDLIB_REG = re.compile(r'\.so|\.dylib|\.dll')
-GSTPLUGIN_FILEPATH_REG = re.compile(r'.*/lib[^/]*/gstreamer-1.0/[^/]+$')
+# libdir is expanded from option of the same name listed in the `meson
+# introspect --buildoptions` output.
+GSTPLUGIN_FILEPATH_REG_TEMPLATE = r'.*/{libdir}/gstreamer-1.0/[^/]+$'
+GSTPLUGIN_FILEPATH_REG = None
def listify(o):
if isinstance(o, str):
if value.startswith(sysroot):
value = value[len(sysroot):]
# Try not to exceed maximum length limits for env vars on Windows
- if os.name is 'nt':
+ if os.name == 'nt':
value = win32_get_short_path_name(value)
env_val = env.get(var, '')
val = os.pathsep + value + os.pathsep
if not SHAREDLIB_REG.search(filename):
return False
# Check if it's installed to the gstreamer plugin location
- for install_filename in target['install_filename']:
+ for install_filename in listify(target['install_filename']):
if install_filename.endswith(os.path.basename(filename)):
break
else:
# None of the installed files in the target correspond to the built
# filename, so skip
return False
+
+ global GSTPLUGIN_FILEPATH_REG
+ if GSTPLUGIN_FILEPATH_REG is None:
+ GSTPLUGIN_FILEPATH_REG = re.compile(GSTPLUGIN_FILEPATH_REG_TEMPLATE)
if GSTPLUGIN_FILEPATH_REG.search(install_filename.replace('\\', '/')):
return False
return True
env["GST_PTP_HELPER"] = os.path.normpath(
"%s/subprojects/gstreamer/libs/gst/helpers/gst-ptp-helper" % options.builddir)
- if os.name is 'nt':
+ if os.name == 'nt':
lib_path_envvar = 'PATH'
elif platform.system() == 'Darwin':
lib_path_envvar = 'DYLD_LIBRARY_PATH'
paths = set()
mono_paths = set()
srcdir_path = pathlib.Path(options.srcdir)
+
+ build_options_s = subprocess.check_output(meson + ['introspect', options.builddir, '--buildoptions'])
+ build_options = json.loads(build_options_s.decode())
+ libdir, = [o['value'] for o in build_options if o['name'] == 'libdir']
+ libdir = libdir.replace('\\', '/')
+
+ global GSTPLUGIN_FILEPATH_REG_TEMPLATE
+ GSTPLUGIN_FILEPATH_REG_TEMPLATE = GSTPLUGIN_FILEPATH_REG_TEMPLATE.format(libdir=libdir)
+
for target in targets:
filenames = listify(target['filename'])
for filename in filenames:
gst_version += '-' + os.path.basename(options.wine)
if not args:
- if os.name is 'nt':
+ if os.name == 'nt':
shell = get_windows_shell()
if shell == 'powershell.exe':
args = ['powershell.exe']