diff options
| -rw-r--r-- | mesonbuild/dependencies/base.py | 3 | ||||
| -rw-r--r-- | mesonbuild/dependencies/boost.py | 2 | ||||
| -rw-r--r-- | mesonbuild/dependencies/coarrays.py | 2 | ||||
| -rw-r--r-- | mesonbuild/dependencies/detect.py | 2 | ||||
| -rw-r--r-- | mesonbuild/dependencies/dub.py | 4 | ||||
| -rw-r--r-- | mesonbuild/interpreter/kwargs.py | 2 | ||||
| -rw-r--r-- | mesonbuild/interpreter/type_checking.py | 1 | ||||
| -rw-r--r-- | mesonbuild/modules/_qt.py | 2 | ||||
| -rw-r--r-- | mesonbuild/modules/gnome.py | 2 | ||||
| -rw-r--r-- | unittests/failuretests.py | 2 |
10 files changed, 11 insertions, 11 deletions
diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py index 1a240f370..ddf6088bd 100644 --- a/mesonbuild/dependencies/base.py +++ b/mesonbuild/dependencies/base.py @@ -54,6 +54,7 @@ if T.TYPE_CHECKING: native: MachineChoice optional_modules: T.List[str] private_headers: bool + required: bool _MissingCompilerBase = Compiler else: @@ -409,7 +410,7 @@ class ExternalDependency(Dependency): if isinstance(version_reqs, str): version_reqs = [version_reqs] self.version_reqs = T.cast('T.Optional[T.List[str]]', version_reqs) - self.required = T.cast('bool', kwargs.get('required', True)) + self.required = kwargs.get('required', True) self.silent = T.cast('bool', kwargs.get('silent', False)) self.static = T.cast('bool', kwargs.get('static', self.env.coredata.optstore.get_value_for(OptionKey('prefer_static')))) self.libtype = LibType.STATIC if self.static else LibType.PREFER_SHARED diff --git a/mesonbuild/dependencies/boost.py b/mesonbuild/dependencies/boost.py index fa88ea586..160eecb99 100644 --- a/mesonbuild/dependencies/boost.py +++ b/mesonbuild/dependencies/boost.py @@ -676,7 +676,7 @@ class BoostDependency(SystemDependency): # Try getting the BOOST_ROOT from a boost.pc if it exists. This primarily # allows BoostDependency to find boost from Conan. See #5438 try: - boost_pc = PkgConfigDependency('boost', self.env, {'required': False}) # type: ignore[typeddict-unknown-key] + boost_pc = PkgConfigDependency('boost', self.env, {'required': False}) if boost_pc.found(): boost_lib_dir = boost_pc.get_variable(pkgconfig='libdir') boost_inc_dir = boost_pc.get_variable(pkgconfig='includedir') diff --git a/mesonbuild/dependencies/coarrays.py b/mesonbuild/dependencies/coarrays.py index b2cefd293..c7d96095e 100644 --- a/mesonbuild/dependencies/coarrays.py +++ b/mesonbuild/dependencies/coarrays.py @@ -58,7 +58,7 @@ class CoarrayDependency(SystemDependency): """ def __init__(self, environment: 'Environment', kwargs: DependencyObjectKWs) -> None: super().__init__('coarray', environment, kwargs, language='fortran') - kwargs['required'] = False # type: ignore[typeddict-unknown-key] + kwargs['required'] = False kwargs['silent'] = True # type: ignore[typeddict-unknown-key] cid = self.get_compiler().get_id() diff --git a/mesonbuild/dependencies/detect.py b/mesonbuild/dependencies/detect.py index 1b5cf7996..c1d335c3b 100644 --- a/mesonbuild/dependencies/detect.py +++ b/mesonbuild/dependencies/detect.py @@ -92,8 +92,6 @@ display_name_map = { def find_external_dependency(name: str, env: 'Environment', kwargs: DependencyObjectKWs, candidates: T.Optional[T.List['DependencyGenerator']] = None) -> T.Union['ExternalDependency', NotFoundDependency]: assert name required = kwargs.get('required', True) - if not isinstance(required, bool): - raise DependencyException('Keyword "required" must be a boolean.') 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') diff --git a/mesonbuild/dependencies/dub.py b/mesonbuild/dependencies/dub.py index 5cf588e6f..69d998978 100644 --- a/mesonbuild/dependencies/dub.py +++ b/mesonbuild/dependencies/dub.py @@ -84,8 +84,8 @@ class DubDependency(ExternalDependency): assert isinstance(_temp_comp, DCompiler) self.compiler = _temp_comp - if 'required' in kwargs: - self.required = T.cast('bool', kwargs.get('required')) + if kwargs.get('required') is not None: + self.required = kwargs['required'] if DubDependency.class_dubbin is None and not DubDependency.class_dubbin_searched: DubDependency.class_dubbin = self._check_dub() diff --git a/mesonbuild/interpreter/kwargs.py b/mesonbuild/interpreter/kwargs.py index e711329a1..02097de0a 100644 --- a/mesonbuild/interpreter/kwargs.py +++ b/mesonbuild/interpreter/kwargs.py @@ -491,7 +491,7 @@ class FuncDeclareDependency(TypedDict): version: T.Optional[str] -class FuncDependency(TypedDict): +class FuncDependency(ExtractRequired): allow_fallback: T.Optional[bool] cmake_args: T.List[str] diff --git a/mesonbuild/interpreter/type_checking.py b/mesonbuild/interpreter/type_checking.py index 68e70a221..e2207176c 100644 --- a/mesonbuild/interpreter/type_checking.py +++ b/mesonbuild/interpreter/type_checking.py @@ -937,6 +937,7 @@ DEPENDENCY_KWS: T.List[KwargInfo] = [ DEPENDENCY_METHOD_KW, INCLUDE_TYPE, NATIVE_KW, + REQUIRED_KW, KwargInfo('allow_fallback', (bool, NoneType), since='0.56.0'), KwargInfo('cmake_args', ContainerTypeInfo(list, str), listify=True, default=[], since='0.50.0'), KwargInfo('cmake_module_path', ContainerTypeInfo(list, str), listify=True, default=[], since='0.50.0'), diff --git a/mesonbuild/modules/_qt.py b/mesonbuild/modules/_qt.py index 82012eb0d..b75169e4b 100644 --- a/mesonbuild/modules/_qt.py +++ b/mesonbuild/modules/_qt.py @@ -270,7 +270,7 @@ class QtBaseModule(ExtensionModule): return self._tools_detected = True mlog.log(f'Detecting Qt{self.qt_version} tools') - kwargs: DependencyObjectKWs = {'required': required, 'modules': ['Core'], 'method': method} # type: ignore[typeddict-unknown-key] + kwargs: DependencyObjectKWs = {'required': required, 'modules': ['Core'], 'method': method} # Just pick one to make mypy happy qt = T.cast('QtPkgConfigDependency', find_external_dependency(f'qt{self.qt_version}', state.environment, kwargs)) if qt.found(): diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py index fff859c0f..4d38d45c3 100644 --- a/mesonbuild/modules/gnome.py +++ b/mesonbuild/modules/gnome.py @@ -283,7 +283,7 @@ class GnomeModule(ExtensionModule): def _get_native_glib_version(self, state: 'ModuleState') -> str: if self.native_glib_version is None: glib_dep = PkgConfigDependency('glib-2.0', state.environment, - {'native': MachineChoice.BUILD, 'required': False}) # type: ignore[typeddict-unknown-key] + {'native': MachineChoice.BUILD, 'required': False}) if glib_dep.found(): self.native_glib_version = glib_dep.get_version() else: diff --git a/unittests/failuretests.py b/unittests/failuretests.py index 426ab993f..fa860d0a0 100644 --- a/unittests/failuretests.py +++ b/unittests/failuretests.py @@ -150,7 +150,7 @@ class FailureTests(BasePlatformTests): a = (("dependency('zlib', method : 'fail')", 'dependency keyword argument "method" must be one of auto, builtin, cmake, config-tool, cups-config, dub, extraframework, libwmf-config, pcap-config, pkg-config, qmake, sdlconfig, sysconfig, system, not fail'), ("dependency('zlib', static : '1')", "[Ss]tatic.*boolean"), ("dependency('zlib', version : 1)", "Item must be a list or one of <class 'str'>"), - ("dependency('zlib', required : 1)", "[Rr]equired.*boolean"), + ("dependency('zlib', required : 1)", "dependency keyword argument 'required' was of type int but should have been one of: bool, UserFeatureOption"), ("dependency('zlib', method : 1)", "dependency keyword argument 'method' was of type int but should have been str"), ("dependency('zlibfail')", self.dnf),) for contents, match in a: |
