aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/backend/vs2010backend.py2
-rw-r--r--mesonbuild/build.py10
2 files changed, 11 insertions, 1 deletions
diff --git a/mesonbuild/backend/vs2010backend.py b/mesonbuild/backend/vs2010backend.py
index ac4f0b2..8d9d4e8 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 315e4bc..ab9d0d5 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):