summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/compilers/compilers.py10
-rw-r--r--mesonbuild/compilers/d.py7
-rw-r--r--mesonbuild/compilers/fortran.py3
-rw-r--r--mesonbuild/compilers/mixins/clike.py6
-rw-r--r--mesonbuild/interpreter/compiler.py3
5 files changed, 13 insertions, 16 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index cd8716540..d53970e36 100644
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -678,20 +678,20 @@ class Compiler(HoldableObject, metaclass=abc.ABCMeta):
dependencies: T.Optional[T.List['Dependency']] = None) -> T.Tuple[bool, bool]:
raise EnvironmentException('Language %s does not support header symbol checks.' % self.get_display_language())
- def run(self, code: 'mesonlib.FileOrString', env: 'Environment',
+ def run(self, code: 'mesonlib.FileOrString',
extra_args: T.Union[T.List[str], T.Callable[[CompileCheckMode], T.List[str]], None] = None,
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 not env.has_exe_wrapper():
+ need_exe_wrapper = self.environment.need_exe_wrapper(self.for_machine)
+ if need_exe_wrapper and not self.environment.has_exe_wrapper():
raise CrossNoRunException('Can not run test applications in this cross environment.')
with self._build_wrapper(code, extra_args, dependencies, mode=CompileCheckMode.LINK, want_output=True) as p:
if p.returncode != 0:
mlog.debug(f'Could not compile test file {p.input_name}: {p.returncode}\n')
return RunResult(False)
if need_exe_wrapper:
- cmdlist = env.exe_wrapper.get_command() + [p.output_name]
+ cmdlist = self.environment.exe_wrapper.get_command() + [p.output_name]
else:
cmdlist = [p.output_name]
try:
@@ -728,7 +728,7 @@ class Compiler(HoldableObject, metaclass=abc.ABCMeta):
mlog.debug('Cached run stdout:\n', p.stdout)
mlog.debug('Cached run stderr:\n', p.stderr)
else:
- p = self.run(code, self.environment, extra_args=extra_args, dependencies=dependencies)
+ p = self.run(code, extra_args=extra_args, dependencies=dependencies)
run_check_cache[key] = p
return p
diff --git a/mesonbuild/compilers/d.py b/mesonbuild/compilers/d.py
index ce1784f53..b32b43355 100644
--- a/mesonbuild/compilers/d.py
+++ b/mesonbuild/compilers/d.py
@@ -567,13 +567,13 @@ class DCompiler(Compiler):
args.append(extra_args)
return args
- def run(self, code: 'mesonlib.FileOrString', env: 'Environment',
+ def run(self, code: 'mesonlib.FileOrString',
extra_args: T.Union[T.List[str], T.Callable[[CompileCheckMode], T.List[str]], None] = None,
dependencies: T.Optional[T.List['Dependency']] = None,
run_env: T.Optional[T.Dict[str, str]] = None,
run_cwd: T.Optional[str] = None) -> compilers.RunResult:
extra_args = self._get_compile_extra_args(extra_args)
- return super().run(code, env, extra_args, dependencies, run_env, run_cwd)
+ return super().run(code, extra_args, dependencies, run_env, run_cwd)
def sizeof(self, typename: str, prefix: str, *,
extra_args: T.Union[None, T.List[str], T.Callable[[CompileCheckMode], T.List[str]]] = None,
@@ -607,8 +607,7 @@ class DCompiler(Compiler):
writeln(({typename}).alignof);
}}
'''
- res = self.run(t, self.environment, extra_args=extra_args,
- dependencies=dependencies)
+ res = self.run(t, extra_args=extra_args, dependencies=dependencies)
if not res.compiled:
raise mesonlib.EnvironmentException('Could not compile alignment test.')
if res.returncode != 0:
diff --git a/mesonbuild/compilers/fortran.py b/mesonbuild/compilers/fortran.py
index 81320816e..e22f97f0e 100644
--- a/mesonbuild/compilers/fortran.py
+++ b/mesonbuild/compilers/fortran.py
@@ -199,8 +199,7 @@ class FortranCompiler(CLikeCompiler, Compiler):
print '(i0)', {expression}
end program test
'''
- res = self.run(t, env, extra_args=extra_args,
- dependencies=dependencies)
+ res = self.run(t, extra_args=extra_args, dependencies=dependencies)
if not res.compiled:
return -1
if res.returncode != 0:
diff --git a/mesonbuild/compilers/mixins/clike.py b/mesonbuild/compilers/mixins/clike.py
index 9ff07a413..700ae66de 100644
--- a/mesonbuild/compilers/mixins/clike.py
+++ b/mesonbuild/compilers/mixins/clike.py
@@ -469,7 +469,7 @@ class CLikeCompiler(Compiler):
#include <stdio.h>
#include <stdint.h>
int main(void) {{ int expression = {expanded}; printf("%d", expression); return 0; }}'''
- run = env.coredata.compilers.build[self.language].run(evaluate_expanded, env)
+ run = env.coredata.compilers.build[self.language].run(evaluate_expanded)
if run and run.compiled and run.returncode == 0:
if self._compile_int(f'{expression} == {run.stdout}', prefix, env, extra_args, dependencies):
return int(run.stdout)
@@ -529,7 +529,7 @@ class CLikeCompiler(Compiler):
printf("%ld\\n", (long)({expression}));
return 0;
}}'''
- res = self.run(t, env, extra_args=extra_args,
+ res = self.run(t, extra_args=extra_args,
dependencies=dependencies)
if not res.compiled:
return -1
@@ -695,7 +695,7 @@ class CLikeCompiler(Compiler):
printf ("{fmt}", {cast} {fname}());
return 0;
}}'''
- res = self.run(code, self.environment, extra_args=extra_args, dependencies=dependencies)
+ res = self.run(code, extra_args=extra_args, dependencies=dependencies)
if not res.compiled:
raise mesonlib.EnvironmentException(f'Could not get return value of {fname}()')
if rtype == 'string':
diff --git a/mesonbuild/interpreter/compiler.py b/mesonbuild/interpreter/compiler.py
index 9629cdc6d..77e7cad43 100644
--- a/mesonbuild/interpreter/compiler.py
+++ b/mesonbuild/interpreter/compiler.py
@@ -284,8 +284,7 @@ class CompilerHolder(ObjectHolder['Compiler']):
code.rel_to_builddir(self.environment.source_dir))
extra_args = functools.partial(self._determine_args, kwargs)
deps, msg = self._determine_dependencies(kwargs['dependencies'], compile_only=False, endl=None)
- result = self.compiler.run(code, self.environment, extra_args=extra_args,
- dependencies=deps)
+ result = self.compiler.run(code, extra_args=extra_args, dependencies=deps)
if required and result.returncode != 0:
raise InterpreterException(f'Could not run {testname if testname else "code"}')