diff options
| author | Dylan Baker <dylan@pnwbakers.com> | 2024-12-06 13:03:16 -0800 |
|---|---|---|
| committer | Dylan Baker <dylan@pnwbakers.com> | 2025-10-20 15:15:53 -0700 |
| commit | ac49d7e2a8183d4e68c9b006318c4ed4c2efabae (patch) | |
| tree | 35ddf374d40aed3de187f940a23944f0cc56e9ac /mesonbuild/dependencies | |
| parent | b7d2e1778c24057b4c20d87996568f6a72a46d73 (diff) | |
| download | meson-ac49d7e2a8183d4e68c9b006318c4ed4c2efabae.tar.gz | |
interpreter: port dependency version to typed_kwargs
Diffstat (limited to 'mesonbuild/dependencies')
| -rw-r--r-- | mesonbuild/dependencies/base.py | 6 | ||||
| -rw-r--r-- | mesonbuild/dependencies/configtool.py | 8 | ||||
| -rw-r--r-- | mesonbuild/dependencies/detect.py | 2 | ||||
| -rw-r--r-- | mesonbuild/dependencies/dev.py | 9 | ||||
| -rw-r--r-- | mesonbuild/dependencies/misc.py | 2 | ||||
| -rw-r--r-- | mesonbuild/dependencies/qt.py | 4 |
6 files changed, 9 insertions, 22 deletions
diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py index 58a40bd38..547beb61e 100644 --- a/mesonbuild/dependencies/base.py +++ b/mesonbuild/dependencies/base.py @@ -56,6 +56,7 @@ if T.TYPE_CHECKING: private_headers: bool required: bool static: T.Optional[bool] + version: T.List[str] _MissingCompilerBase = Compiler else: @@ -407,10 +408,7 @@ class ExternalDependency(Dependency): self.name = type_name # default self.is_found = False self.language = language - version_reqs = kwargs.get('version', None) - if isinstance(version_reqs, str): - version_reqs = [version_reqs] - self.version_reqs = T.cast('T.Optional[T.List[str]]', version_reqs) + self.version_reqs = kwargs.get('version', []) self.required = kwargs.get('required', True) self.silent = T.cast('bool', kwargs.get('silent', False)) static = kwargs.get('static') diff --git a/mesonbuild/dependencies/configtool.py b/mesonbuild/dependencies/configtool.py index dca9e8c04..2761bfb5d 100644 --- a/mesonbuild/dependencies/configtool.py +++ b/mesonbuild/dependencies/configtool.py @@ -10,8 +10,6 @@ from .. import mlog import re import typing as T -from mesonbuild import mesonlib - if T.TYPE_CHECKING: from ..environment import Environment from ..interpreter.type_checking import PkgConfigDefineType @@ -49,11 +47,7 @@ class ConfigToolDependency(ExternalDependency): if 'version_arg' in kwargs: self.version_arg = kwargs['version_arg'] # type: ignore[typeddict-item] - req_version_raw = kwargs.get('version', None) - if req_version_raw is not None: - req_version = mesonlib.stringlistify(req_version_raw) - else: - req_version = [] + req_version = kwargs.get('version', []) tool, version = self.find_config(req_version, kwargs.get('returncode_value', 0), exclude_paths=exclude_paths) # type: ignore[arg-type] self.config = tool self.is_found = self.report_config(version, req_version) diff --git a/mesonbuild/dependencies/detect.py b/mesonbuild/dependencies/detect.py index c1d335c3b..6095dd5a3 100644 --- a/mesonbuild/dependencies/detect.py +++ b/mesonbuild/dependencies/detect.py @@ -95,8 +95,6 @@ def find_external_dependency(name: str, env: 'Environment', kwargs: DependencyOb lname = name.lower() if lname not in _packages_accept_language and kwargs.get('language') is not None: raise DependencyException(f'{name} dependency does not accept "language" keyword argument') - if not isinstance(kwargs.get('version', ''), (str, list)): - raise DependencyException('Keyword "Version" must be string or list.') # display the dependency name with correct casing display_name = display_name_map.get(lname, lname) diff --git a/mesonbuild/dependencies/dev.py b/mesonbuild/dependencies/dev.py index 62583880f..d9f8fb1ee 100644 --- a/mesonbuild/dependencies/dev.py +++ b/mesonbuild/dependencies/dev.py @@ -33,9 +33,6 @@ if T.TYPE_CHECKING: from ..interpreter.type_checking import PkgConfigDefineType from .base import DependencyObjectKWs - class JNISystemDependencyKW(DependencyObjectKWs): - version: T.Optional[str] - def get_shared_library_suffix(environment: 'Environment', for_machine: MachineChoice) -> str: """This is only guaranteed to work for languages that compile to machine @@ -557,7 +554,7 @@ class ZlibSystemDependency(SystemDependency): class JNISystemDependency(SystemDependency): - def __init__(self, environment: 'Environment', kwargs: JNISystemDependencyKW): + def __init__(self, environment: 'Environment', kwargs: DependencyObjectKWs): super().__init__('jni', environment, kwargs) self.feature_since = ('0.62.0', '') @@ -580,7 +577,7 @@ class JNISystemDependency(SystemDependency): self.is_found = False return - if 'version' in kwargs and not version_compare_many(self.version, kwargs['version'])[0]: + if kwargs.get('version') and not version_compare_many(self.version, kwargs['version'])[0]: mlog.error(f'Incorrect JDK version found ({self.version}), wanted {kwargs["version"]}') self.is_found = False return @@ -685,7 +682,7 @@ packages['jni'] = JNISystemDependency class JDKSystemDependency(JNISystemDependency): - def __init__(self, environment: 'Environment', kwargs: JNISystemDependencyKW): + def __init__(self, environment: 'Environment', kwargs: DependencyObjectKWs): super().__init__(environment, kwargs) self.feature_since = ('0.59.0', '') diff --git a/mesonbuild/dependencies/misc.py b/mesonbuild/dependencies/misc.py index 672f58ae2..96337e0be 100644 --- a/mesonbuild/dependencies/misc.py +++ b/mesonbuild/dependencies/misc.py @@ -390,7 +390,7 @@ class CursesSystemDependency(SystemDependency): self.version = f'{v_major}.{v_minor}' # Check the version if possible, emit a warning if we can't - req = T.cast('T.Iterable[str]', kwargs.get('version')) + req = kwargs.get('version', []) if req: if self.version: self.is_found, *_ = mesonlib.version_compare_many(self.version, req) diff --git a/mesonbuild/dependencies/qt.py b/mesonbuild/dependencies/qt.py index 4ef430bca..9aef02ef4 100644 --- a/mesonbuild/dependencies/qt.py +++ b/mesonbuild/dependencies/qt.py @@ -261,9 +261,9 @@ class QmakeQtDependency(_QtBase, ConfigToolDependency, metaclass=abc.ABCMeta): # is requested, add "">= 5, < 6", but if the user has ">= 5.6", don't # lose that. kwargs = kwargs.copy() - _vers = mesonlib.listify(kwargs.get('version', [])) + _vers = kwargs.get('version', []) _vers.extend([f'>= {self.qtver}', f'< {int(self.qtver) + 1}']) - kwargs['version'] = _vers # type: ignore[typeddict-unknown-key] + kwargs['version'] = _vers ConfigToolDependency.__init__(self, name, env, kwargs) if not self.found(): |
