aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/backend
diff options
context:
space:
mode:
authorMatthias Klumpp <matthias@tenstral.net>2021-02-25 19:53:41 +0100
committerGitHub <noreply@github.com>2021-02-25 20:53:41 +0200
commit4e5efd3897c5bd03fbcd32fcf43c82879ca8caf4 (patch)
tree6c04a3205817aedbbd98fcfc1c4f536e1f0aebc2 /mesonbuild/backend
parent74ebb1ba59637487ecebf9666517bdef512df7fc (diff)
downloadmeson-4e5efd3897c5bd03fbcd32fcf43c82879ca8caf4.zip
meson-4e5efd3897c5bd03fbcd32fcf43c82879ca8caf4.tar.gz
meson-4e5efd3897c5bd03fbcd32fcf43c82879ca8caf4.tar.bz2
Allow custom target output to be processed by generators
Diffstat (limited to 'mesonbuild/backend')
-rw-r--r--mesonbuild/backend/vs2010backend.py26
1 files changed, 17 insertions, 9 deletions
diff --git a/mesonbuild/backend/vs2010backend.py b/mesonbuild/backend/vs2010backend.py
index 7bbd2b6..82891cd 100644
--- a/mesonbuild/backend/vs2010backend.py
+++ b/mesonbuild/backend/vs2010backend.py
@@ -272,17 +272,25 @@ class Vs2010Backend(backends.Backend):
all_deps[ldep.get_id()] = ldep
for obj_id, objdep in self.get_obj_target_deps(target.objects):
all_deps[obj_id] = objdep
- for gendep in target.get_generated_sources():
- if isinstance(gendep, build.CustomTarget):
- all_deps[gendep.get_id()] = gendep
- elif isinstance(gendep, build.CustomTargetIndex):
- all_deps[gendep.target.get_id()] = gendep.target
- else:
- gen_exe = gendep.generator.get_exe()
- if isinstance(gen_exe, build.Executable):
- all_deps[gen_exe.get_id()] = gen_exe
else:
raise MesonException('Unknown target type for target %s' % target)
+
+ for gendep in target.get_generated_sources():
+ if isinstance(gendep, build.CustomTarget):
+ all_deps[gendep.get_id()] = gendep
+ elif isinstance(gendep, build.CustomTargetIndex):
+ all_deps[gendep.target.get_id()] = gendep.target
+ else:
+ generator = gendep.get_generator()
+ gen_exe = generator.get_exe()
+ if isinstance(gen_exe, build.Executable):
+ all_deps[gen_exe.get_id()] = gen_exe
+ for d in generator.depends:
+ if isinstance(d, build.CustomTargetIndex):
+ all_deps[d.get_id()] = d.target
+ else:
+ all_deps[d.get_id()] = d
+
if not t or not recursive:
return all_deps
ret = self.get_target_deps(all_deps, recursive)