diff options
-rw-r--r-- | mesonbuild/backend/backends.py | 14 | ||||
-rw-r--r-- | mesonbuild/scripts/meson_exe.py | 15 |
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) |