From 4d9db210396c618eac0c2b3f216401c10b9a5225 Mon Sep 17 00:00:00 2001 From: Nicolas Schneider Date: Wed, 16 Mar 2016 00:00:39 +0100 Subject: [PATCH] vs2010: fix dependencies of CustomTarget --- mesonbuild/backend/vs2010backend.py | 2 +- mesonbuild/build.py | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/mesonbuild/backend/vs2010backend.py b/mesonbuild/backend/vs2010backend.py index a72681bf2..06229ad48 100644 --- a/mesonbuild/backend/vs2010backend.py +++ b/mesonbuild/backend/vs2010backend.py @@ -123,7 +123,7 @@ class Vs2010Backend(backends.Backend): all_deps = {} target = self.build.targets[p[0]] if isinstance(target, build.CustomTarget): - for d in target.dependencies: + for d in target.get_target_dependencies(): all_deps[d.get_id()] = True return all_deps if isinstance(target, build.RunTarget): diff --git a/mesonbuild/build.py b/mesonbuild/build.py index 315e4bc1d..ab9d0d531 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -806,6 +806,16 @@ class CustomTarget: def get_id(self): return self.name + self.type_suffix() + def get_target_dependencies(self): + deps = self.dependencies[:] + deps += self.extra_depends + for c in self.sources: + if hasattr(c, 'held_object'): + c = c.held_object + if isinstance(c, BuildTarget) or isinstance(c, CustomTarget): + deps.append(c) + return deps + def process_kwargs(self, kwargs): self.sources = kwargs.get('input', []) if not isinstance(self.sources, list):