From 25848fc05f69a54f63bc816486283a2e74d842a8 Mon Sep 17 00:00:00 2001 From: Remi Thebault Date: Sun, 28 Feb 2021 10:13:31 +0100 Subject: [PATCH] fix missing versions with generated source --- mesonbuild/compilers/d.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mesonbuild/compilers/d.py b/mesonbuild/compilers/d.py index 4a6a04639..ef261fd7c 100644 --- a/mesonbuild/compilers/d.py +++ b/mesonbuild/compilers/d.py @@ -153,6 +153,9 @@ class DmdLikeCompilerMixin(CompilerMixinBase): def get_feature_args(self, kwargs: T.Dict[str, T.Any], build_to_src: str) -> T.List[str]: # TODO: using a TypeDict here would improve this res = [] + # get_feature_args can be called multiple times for the same target when there is generated source + # so we have to copy the kwargs (target.d_features) dict before popping from it + kwargs = kwargs.copy() if 'unittest' in kwargs: unittest = kwargs.pop('unittest') unittest_arg = d_feature_args[self.id]['unittest'] @@ -527,6 +530,9 @@ class DCompiler(Compiler): def get_feature_args(self, kwargs: T.Dict[str, T.Any], build_to_src: str) -> T.List[str]: # TODO: using a TypeDict here would improve this res = [] + # get_feature_args can be called multiple times for the same target when there is generated source + # so we have to copy the kwargs (target.d_features) dict before popping from it + kwargs = kwargs.copy() if 'unittest' in kwargs: unittest = kwargs.pop('unittest') unittest_arg = d_feature_args[self.id]['unittest']