aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/backend/backends.py14
-rw-r--r--mesonbuild/scripts/meson_exe.py15
2 files changed, 10 insertions, 19 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
index 5316d45..a334b34 100644
--- a/mesonbuild/backend/backends.py
+++ b/mesonbuild/backend/backends.py
@@ -69,17 +69,14 @@ class TargetInstallData:
self.optional = optional
class ExecutableSerialisation:
- def __init__(self, name, fname, cmd_args, env=None, is_cross=False, exe_wrapper=None,
- workdir=None, extra_paths=None, capture=None, needs_exe_wrapper: bool = False):
- self.name = name
+ def __init__(self, fname, cmd_args, env=None, exe_wrapper=None,
+ workdir=None, extra_paths=None, capture=None):
self.fname = fname
self.cmd_args = cmd_args
self.env = env or {}
- self.is_cross = is_cross
if exe_wrapper is not None:
assert(isinstance(exe_wrapper, dependencies.ExternalProgram))
self.exe_runner = exe_wrapper
- self.needs_exe_wrapper = needs_exe_wrapper
self.workdir = workdir
self.extra_paths = extra_paths
self.capture = capture
@@ -387,10 +384,9 @@ class Backend:
scratch_file = 'meson_exe_{0}_{1}.dat'.format(basename, digest)
exe_data = os.path.join(self.environment.get_scratch_dir(), scratch_file)
with open(exe_data, 'wb') as f:
- es = ExecutableSerialisation(basename, exe_cmd, cmd_args, env,
- is_cross_built, exe_wrapper, workdir,
- extra_paths, capture,
- self.environment.need_exe_wrapper())
+ es = ExecutableSerialisation(exe_cmd, cmd_args, env,
+ exe_wrapper, workdir,
+ extra_paths, capture)
pickle.dump(es, f)
return self.environment.get_build_command() + ['--internal', 'exe', '--unpickle', exe_data]
diff --git a/mesonbuild/scripts/meson_exe.py b/mesonbuild/scripts/meson_exe.py
index c7efa7f..8f7d0fd 100644
--- a/mesonbuild/scripts/meson_exe.py
+++ b/mesonbuild/scripts/meson_exe.py
@@ -39,15 +39,11 @@ def is_cygwin():
return 'cygwin' in platname
def run_exe(exe):
- if exe.is_cross and exe.needs_exe_wrapper:
- if exe.exe_runner is None:
- raise AssertionError('BUG: Can\'t run cross-compiled exe {!r} '
- 'with no wrapper'.format(exe.name))
- elif not exe.exe_runner.found():
+ if exe.exe_runner:
+ if not exe.exe_runner.found():
raise AssertionError('BUG: Can\'t run cross-compiled exe {!r} with not-found '
- 'wrapper {!r}'.format(exe.name, exe.exe_runner.get_path()))
- else:
- cmd = exe.exe_runner.get_command() + exe.fname
+ 'wrapper {!r}'.format(exe.fname[0], exe.exe_runner.get_path()))
+ cmd = exe.exe_runner.get_command() + exe.fname
else:
cmd = exe.fname
child_env = os.environ.copy()
@@ -109,8 +105,7 @@ def run(args):
else:
exe_cmd = cmd_args[0]
cmd_args = cmd_args[1:]
- basename = os.path.basename(exe_cmd)
- exe = ExecutableSerialisation(basename, [exe_cmd], cmd_args,
+ exe = ExecutableSerialisation([exe_cmd], cmd_args,
capture=options.capture)
return run_exe(exe)