diff options
-rw-r--r-- | mesonbuild/backend/backends.py | 4 | ||||
-rw-r--r-- | mesonbuild/scripts/meson_exe.py | 30 |
2 files changed, 14 insertions, 20 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py index 8328c57..5316d45 100644 --- a/mesonbuild/backend/backends.py +++ b/mesonbuild/backend/backends.py @@ -355,6 +355,10 @@ class Backend: 'check the command and/or add it to PATH.' raise MesonException(msg.format(exe_wrapper.name, tname)) else: + if exe_cmd[0].endswith('.jar'): + exe_cmd = ['java', '-jar'] + exe_cmd + elif exe_cmd[0].endswith('.exe') and not (mesonlib.is_windows() or mesonlib.is_cygwin()): + exe_cmd = ['mono'] + exe_cmd exe_wrapper = None force_serialize = force_serialize or extra_paths or workdir or \ diff --git a/mesonbuild/scripts/meson_exe.py b/mesonbuild/scripts/meson_exe.py index e5bc9dc..c7efa7f 100644 --- a/mesonbuild/scripts/meson_exe.py +++ b/mesonbuild/scripts/meson_exe.py @@ -38,28 +38,18 @@ def is_cygwin(): platname = platform.system().lower() return 'cygwin' in platname -def run_with_mono(fname): - if fname.endswith('.exe') and not (is_windows() or is_cygwin()): - return True - return False - def run_exe(exe): - if exe.fname[0].endswith('.jar'): - cmd = ['java', '-jar'] + exe.fname - elif not exe.is_cross and run_with_mono(exe.fname[0]): - cmd = ['mono'] + exe.fname - else: - 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(): - 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 + 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(): + 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.fname + cmd = exe.exe_runner.get_command() + exe.fname + else: + cmd = exe.fname child_env = os.environ.copy() child_env.update(exe.env) if exe.extra_paths: |