summaryrefslogtreecommitdiff
path: root/mesonbuild/compilers/compilers.py
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2023-11-06 08:07:07 -0500
committerXavier Claessens <xclaesse@gmail.com>2024-03-15 11:38:54 -0400
commit6b569527bca9354be77769f91a0607cfd692d861 (patch)
tree27496fdf3fff8ad902557e72d393e04501156ad9 /mesonbuild/compilers/compilers.py
parentb1358ef61f12f86b900bfa8071ae24c8d3468845 (diff)
downloadmeson-6b569527bca9354be77769f91a0607cfd692d861.tar.gz
compilers: Allow setting env and workdir for run checks
This is not exposed in API, but will be used internally.
Diffstat (limited to 'mesonbuild/compilers/compilers.py')
-rw-r--r--mesonbuild/compilers/compilers.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index 6b598622c..474c87eb5 100644
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -625,7 +625,9 @@ class Compiler(HoldableObject, metaclass=abc.ABCMeta):
def run(self, code: 'mesonlib.FileOrString', env: 'Environment',
extra_args: T.Union[T.List[str], T.Callable[[CompileCheckMode], T.List[str]], None] = None,
- dependencies: T.Optional[T.List['Dependency']] = None) -> RunResult:
+ dependencies: T.Optional[T.List['Dependency']] = None,
+ run_env: T.Optional[T.Dict[str, str]] = None,
+ run_cwd: T.Optional[str] = None) -> RunResult:
need_exe_wrapper = env.need_exe_wrapper(self.for_machine)
if need_exe_wrapper and self.exe_wrapper is None:
raise CrossNoRunException('Can not run test applications in this cross environment.')
@@ -638,7 +640,7 @@ class Compiler(HoldableObject, metaclass=abc.ABCMeta):
else:
cmdlist = [p.output_name]
try:
- pe, so, se = mesonlib.Popen_safe(cmdlist)
+ pe, so, se = mesonlib.Popen_safe(cmdlist, env=run_env, cwd=run_cwd)
except Exception as e:
mlog.debug(f'Could not run: {cmdlist} (error: {e})\n')
return RunResult(False)