summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/backend/xcodebackend.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/mesonbuild/backend/xcodebackend.py b/mesonbuild/backend/xcodebackend.py
index c951819a5..3a70d25e9 100644
--- a/mesonbuild/backend/xcodebackend.py
+++ b/mesonbuild/backend/xcodebackend.py
@@ -585,12 +585,15 @@ class XCodeBackend(backends.Backend):
elif isinstance(d, build.BuildTarget):
dependencies.append(self.pbx_dep_map[d.get_id()])
for s in t.sources:
- if not isinstance(s, build.GeneratedList):
- continue
- build_phases.append(self.shell_targets[(tname, generator_id)])
- for d in s.depends:
- dependencies.append(self.pbx_custom_dep_map[d.get_id()])
- generator_id += 1
+ if isinstance(s, build.GeneratedList):
+ build_phases.append(self.shell_targets[(tname, generator_id)])
+ for d in s.depends:
+ dependencies.append(self.pbx_custom_dep_map[d.get_id()])
+ generator_id += 1
+ elif isinstance(s, build.ExtractedObjects):
+ source_target_id = self.pbx_dep_map[s.target.get_id()]
+ if source_target_id not in dependencies:
+ dependencies.append(source_target_id)
build_phases.append(self.shell_targets[tname])
aggregated_targets.append((ct_id, tname, self.buildconflistmap[tname], build_phases, dependencies))