summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2022-11-05 18:20:44 -0400
committerXavier Claessens <xavier.claessens@collabora.com>2022-12-07 11:58:36 -0500
commit302a29593a49c875adb5638375c1e5018efb7fb9 (patch)
treea81c25aadc0d8aade6470e3f06b143dee49ad52b
parentf73970cc8f2599e41bac4e99de3a88ee7983a7ce (diff)
downloadmeson-302a29593a49c875adb5638375c1e5018efb7fb9.tar.gz
devenv: Always include env for HOST machine
Cross compiled executables could still be run with an exe wrapper, or with proper binfmt installed. Fixes: #10999
-rw-r--r--mesonbuild/backend/backends.py4
-rw-r--r--mesonbuild/mdevenv.py8
2 files changed, 9 insertions, 3 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
index eda6fb6d2..f5b09f356 100644
--- a/mesonbuild/backend/backends.py
+++ b/mesonbuild/backend/backends.py
@@ -1854,10 +1854,8 @@ class Backend:
host_machine = self.environment.machines[MachineChoice.HOST]
need_wine = not build_machine.is_windows() and host_machine.is_windows()
for t in self.build.get_targets().values():
- cross_built = not self.environment.machines.matches_build_machine(t.for_machine)
- can_run = not cross_built or not need_exe_wrapper or need_wine
in_default_dir = t.should_install() and not t.get_install_dir()[2]
- if not can_run or not in_default_dir:
+ if t.for_machine != MachineChoice.HOST or not in_default_dir:
continue
tdir = os.path.join(self.environment.get_build_dir(), self.get_target_dir(t))
if isinstance(t, build.Executable):
diff --git a/mesonbuild/mdevenv.py b/mesonbuild/mdevenv.py
index 57972ce5f..4b3d783a5 100644
--- a/mesonbuild/mdevenv.py
+++ b/mesonbuild/mdevenv.py
@@ -150,6 +150,14 @@ def run(options: argparse.Namespace) -> int:
print(f'export {name}')
return 0
+ if b.environment.need_exe_wrapper():
+ m = 'An executable wrapper could be required'
+ exe_wrapper = b.environment.get_exe_wrapper()
+ if exe_wrapper:
+ cmd = ' '.join(exe_wrapper.get_command())
+ m += f': {cmd}'
+ mlog.log(m)
+
install_data = minstall.load_install_data(str(privatedir / 'install.dat'))
write_gdb_script(privatedir, install_data, workdir)