summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/dependencies/base.py3
-rw-r--r--mesonbuild/dependencies/boost.py2
-rw-r--r--mesonbuild/dependencies/coarrays.py2
-rw-r--r--mesonbuild/dependencies/detect.py2
-rw-r--r--mesonbuild/dependencies/dub.py4
-rw-r--r--mesonbuild/interpreter/kwargs.py2
-rw-r--r--mesonbuild/interpreter/type_checking.py1
-rw-r--r--mesonbuild/modules/_qt.py2
-rw-r--r--mesonbuild/modules/gnome.py2
-rw-r--r--unittests/failuretests.py2
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: