aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter/interpreter.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2021-09-24 23:40:52 +0300
committerGitHub <noreply@github.com>2021-09-24 23:40:52 +0300
commitfee5cb697c77156f0dec4264ce846dd0d4f84fd5 (patch)
tree3285c253624f75b104c28e71a0a81ac8caff1cc3 /mesonbuild/interpreter/interpreter.py
parent68c23a61203fc35dd11c7a0b1cc13f7cc2c5cf8c (diff)
parent5a69dbe0cb500fe1a2be2e07219b58b1edf443b5 (diff)
downloadmeson-fee5cb697c77156f0dec4264ce846dd0d4f84fd5.zip
meson-fee5cb697c77156f0dec4264ce846dd0d4f84fd5.tar.gz
meson-fee5cb697c77156f0dec4264ce846dd0d4f84fd5.tar.bz2
Merge pull request #9167 from dcbaker/submit/meson-main-type-checking
Add type annotations and type checking to meson main
Diffstat (limited to 'mesonbuild/interpreter/interpreter.py')
-rw-r--r--mesonbuild/interpreter/interpreter.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py
index 2d04d2d..f94ed2d 100644
--- a/mesonbuild/interpreter/interpreter.py
+++ b/mesonbuild/interpreter/interpreter.py
@@ -73,7 +73,9 @@ import importlib
if T.TYPE_CHECKING:
import argparse
+
from . import kwargs
+ from ..programs import OverrideProgram
# Input source types passed to Targets
SourceInputs = T.Union[mesonlib.File, build.GeneratedList, build.BuildTarget, build.BothLibraries,
@@ -233,6 +235,7 @@ class Interpreter(InterpreterBase, HoldableObject):
user_defined_options: T.Optional['argparse.Namespace'] = None,
) -> None:
super().__init__(_build.environment.get_source_dir(), subdir, subproject)
+ self.active_projectname = ''
self.build = _build
self.environment = self.build.environment
self.coredata = self.environment.get_coredata()
@@ -1057,8 +1060,7 @@ external dependencies (including libraries) must go to "dependencies".''')
if self.build.project_version is None:
self.build.project_version = self.project_version
proj_license = mesonlib.stringlistify(kwargs.get('license', 'unknown'))
- self.build.dep_manifest[proj_name] = {'version': self.project_version,
- 'license': proj_license}
+ self.build.dep_manifest[proj_name] = build.DepManifest(self.project_version, proj_license)
if self.subproject in self.build.projects:
raise InvalidCode('Second call to project().')
@@ -1342,7 +1344,7 @@ external dependencies (including libraries) must go to "dependencies".''')
if isinstance(name, str):
self.build.searched_programs.add(name)
- def add_find_program_override(self, name, exe):
+ def add_find_program_override(self, name: str, exe: T.Union[build.Executable, ExternalProgram, 'OverrideProgram']) -> None:
if name in self.build.searched_programs:
raise InterpreterException(f'Tried to override finding of executable "{name}" which has already been found.')
if name in self.build.find_overrides:
@@ -1435,7 +1437,7 @@ external dependencies (including libraries) must go to "dependencies".''')
@FeatureNewKwargs('find_program', '0.49.0', ['disabler'])
@disablerIfNotFound
@permittedKwargs({'required', 'native', 'version', 'dirs'})
- def func_find_program(self, node, args, kwargs):
+ def func_find_program(self, node, args, kwargs) -> T.Union['build.Executable', ExternalProgram, 'OverrideProgram']:
if not args:
raise InterpreterException('No program name specified.')
@@ -2648,7 +2650,7 @@ This will become a hard error in the future.''', location=self.current_node)
if self.subproject != buildtarget.subproject:
raise InterpreterException('Tried to extract objects from a different subproject.')
- def is_subproject(self):
+ def is_subproject(self) -> bool:
return self.subproject != ''
@typed_pos_args('set_variable', str, object)