aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2021-11-04 11:31:55 -0700
committerDylan Baker <dylan@pnwbakers.com>2021-11-22 11:28:43 -0800
commit38b4673a94201075e9d24d14777d2f0ea121fd38 (patch)
tree345c564ec4f386fe47b84f9cc3792f912227021e /mesonbuild/interpreter
parentd05a0fbf335b23814ede488c668f43c97fd4f06c (diff)
downloadmeson-38b4673a94201075e9d24d14777d2f0ea121fd38.zip
meson-38b4673a94201075e9d24d14777d2f0ea121fd38.tar.gz
meson-38b4673a94201075e9d24d14777d2f0ea121fd38.tar.bz2
interpreter: add type annotations to find_program_impl
Diffstat (limited to 'mesonbuild/interpreter')
-rw-r--r--mesonbuild/interpreter/interpreter.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py
index 6a30cdd..88cec10 100644
--- a/mesonbuild/interpreter/interpreter.py
+++ b/mesonbuild/interpreter/interpreter.py
@@ -1408,9 +1408,13 @@ external dependencies (including libraries) must go to "dependencies".''')
# TODO update modules to always pass `for_machine`. It is bad-form to assume
# the host machine.
- def find_program_impl(self, args, for_machine: MachineChoice = MachineChoice.HOST,
- required=True, silent=True, wanted='', search_dirs=None,
- version_func=None):
+ def find_program_impl(self, args: T.List[mesonlib.FileOrString],
+ for_machine: MachineChoice = MachineChoice.HOST,
+ required: bool = True, silent: bool = True,
+ wanted: T.Union[str, T.List[str]] = '',
+ search_dirs: T.Optional[T.List[str]] = None,
+ version_func: T.Optional[T.Callable[[T.Union['ExternalProgram', 'build.Executable', 'OverrideProgram']], str]] = None
+ ) -> T.Union['ExternalProgram', 'build.Executable', 'OverrideProgram']:
args = mesonlib.listify(args)
extra_info = []
@@ -1434,7 +1438,7 @@ external dependencies (including libraries) must go to "dependencies".''')
interp = self.subprojects[progobj.subproject].held_object
assert isinstance(interp, Interpreter)
version = interp.project_version
- elif isinstance(progobj, ExternalProgram):
+ else:
version = progobj.get_version(self)
is_found, not_found, found = mesonlib.version_compare_many(version, wanted)
if not is_found: