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))