summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2024-12-09 11:02:34 -0800
committerDylan Baker <dylan@pnwbakers.com>2025-08-01 14:14:08 -0700
commit6473a727a6907185871758bb554c0850bd00cf6b (patch)
tree84ecb76541ec9d0f5c7df901627f1b2847b05a2d
parentf0d121e06e45565956726779dce9a4741e70534f (diff)
downloadmeson-6473a727a6907185871758bb554c0850bd00cf6b.tar.gz
dependencies: fill in defaults from DEPENDENCY_KWS when generating key
Otherwise we run into issues where the key doesn't match when some values are empty and others are not. These values can be empty when they come from `find_external_dependency`, but will be initialized to a default when they come from the `Interpreter`.
-rw-r--r--mesonbuild/dependencies/detect.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/mesonbuild/dependencies/detect.py b/mesonbuild/dependencies/detect.py
index e9232d337..4cdf16de5 100644
--- a/mesonbuild/dependencies/detect.py
+++ b/mesonbuild/dependencies/detect.py
@@ -40,10 +40,14 @@ _packages_accept_language: T.Set[str] = set()
def get_dep_identifier(name: str, kwargs: T.Dict[str, T.Any]) -> 'TV_DepID':
identifier: 'TV_DepID' = (('name', name), )
+ from ..interpreter.type_checking import DEPENDENCY_KWS
+ nkwargs = {k.name: k.default for k in DEPENDENCY_KWS}
+ nkwargs.update(kwargs)
+
from ..interpreter import permitted_dependency_kwargs
assert len(permitted_dependency_kwargs) == 19, \
'Extra kwargs have been added to dependency(), please review if it makes sense to handle it here'
- for key, value in kwargs.items():
+ for key, value in nkwargs.items():
# 'version' is irrelevant for caching; the caller must check version matches
# 'native' is handled above with `for_machine`
# 'required' is irrelevant for caching; the caller handles it separately