From f03c712d17213535f96f2ddece1253ea9abbdf6a Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Mon, 28 Feb 2022 12:16:58 -0800 Subject: [PATCH] interpreter: fix notfound_program method Which should take a File or str, but only handles str correctly. Which mypy would have caught for us, if we just had annotations here. --- mesonbuild/interpreter/interpreter.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py index 2d891d9f7..88b6bfb6a 100644 --- a/mesonbuild/interpreter/interpreter.py +++ b/mesonbuild/interpreter/interpreter.py @@ -1439,8 +1439,10 @@ external dependencies (including libraries) must go to "dependencies".''') raise InterpreterException(f'Tried to override executable "{name}" which has already been overridden.') self.build.find_overrides[name] = exe - def notfound_program(self, args): - return NonExistingExternalProgram(' '.join(args)) + def notfound_program(self, args: T.List[mesonlib.FileOrString]) -> ExternalProgram: + return NonExistingExternalProgram(' '.join( + [a if isinstance(a, str) else a.absolute_path(self.environment.source_dir, self.environment.build_dir) + for a in args])) # TODO update modules to always pass `for_machine`. It is bad-form to assume # the host machine.