diff options
| author | Dylan Baker <dylan@pnwbakers.com> | 2024-12-09 11:02:34 -0800 |
|---|---|---|
| committer | Dylan Baker <dylan@pnwbakers.com> | 2025-08-01 14:14:08 -0700 |
| commit | 6473a727a6907185871758bb554c0850bd00cf6b (patch) | |
| tree | 84ecb76541ec9d0f5c7df901627f1b2847b05a2d | |
| parent | f0d121e06e45565956726779dce9a4741e70534f (diff) | |
| download | meson-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.py | 6 |
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 |
