import tempfile
import pathlib
import signal
+from pathlib import PurePath
from distutils.sysconfig import get_python_lib
from distutils.util import strtobool
return False
return True
+def is_binary_target_and_in_path(target, filename, bindir):
+ if target['type'] != 'executable':
+ return False
+ if not target['installed']:
+ return False
+ # Check if this file installed by this target is installed to bindir
+ 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
+ fpath = PurePath(install_filename)
+ if fpath.parent != bindir:
+ return False
+ return True
+
def get_wine_subprocess_env(options, env):
with open(os.path.join(options.builddir, 'meson-info', 'intro-buildoptions.json')) as f:
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('\\', '/')
+ libdir = PurePath(libdir)
+ prefix, = [o['value'] for o in build_options if o['name'] == 'prefix']
+ bindir, = [o['value'] for o in build_options if o['name'] == 'bindir']
+ prefix = PurePath(prefix)
+ bindir = prefix / bindir
global GSTPLUGIN_FILEPATH_REG_TEMPLATE
- GSTPLUGIN_FILEPATH_REG_TEMPLATE = GSTPLUGIN_FILEPATH_REG_TEMPLATE.format(libdir=libdir)
+ GSTPLUGIN_FILEPATH_REG_TEMPLATE = GSTPLUGIN_FILEPATH_REG_TEMPLATE.format(libdir=libdir.as_posix())
for target in targets:
filenames = listify(target['filename'])
prepend_env_var(env, lib_path_envvar,
os.path.join(options.builddir, root),
options.sysroot)
- elif target['type'] == 'executable' and target['installed']:
+ elif is_binary_target_and_in_path(target, filename, bindir):
paths.add(os.path.join(options.builddir, root))
with open(os.path.join(options.builddir, 'GstPluginsPath.json')) as f: