diff options
Diffstat (limited to 'backends.py')
-rw-r--r-- | backends.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/backends.py b/backends.py index 568167e..0495e3e 100644 --- a/backends.py +++ b/backends.py @@ -1609,9 +1609,11 @@ class XCodeBackend(Backend): self.generate_filemap() self.generate_buildmap() self.generate_buildstylemap() + self.generate_build_phase_map() self.generate_build_configuration_map() self.generate_build_configurationlist_map() self.generate_native_target_map() + self.generate_source_phase_map() self.generate_configure_files() self.generate_pkgconfig_files() self.proj_dir = os.path.join(self.environment.get_build_dir(), self.build.project_name + '.xcodeproj') @@ -1656,6 +1658,11 @@ class XCodeBackend(Backend): def generate_buildstylemap(self): self.buildstylemap = {'debug' : self.gen_id()} + def generate_build_phase_map(self): + self.buildphasemap = {} + for t in self.build.targets: + self.buildphasemap[t] = self.gen_id() + def generate_build_configuration_map(self): self.buildconfmap = {} for t in self.build.targets: @@ -1672,6 +1679,11 @@ class XCodeBackend(Backend): for t in self.build.targets: self.native_targets[t] = self.gen_id() + def generate_source_phase_map(self): + self.source_phase = {} + for t in self.build.targets: + self.source_phase[t] = self.gen_id() + def generate_pbx_aggregate_target(self): self.ofile.write('\n/* Begin PBXAggregateTarget section */\n') self.ofile.write('/* End PBXAggregateTarget section */\n') @@ -1870,6 +1882,20 @@ class XCodeBackend(Backend): def generate_pbx_sources_build_phase(self): self.ofile.write('\n/* Begin PBXSourcesBuildPhase section */\n') + for name, phase_id in self.source_phase.items(): + self.write_line('%s /* Sources */ = {' % self.buildphasemap[name]) + self.indent_level+=1 + self.write_line('isa = PBXSourcesBuildPhase;') + self.write_line('buildActionMask = 2147483647;') + self.write_line('files = (') + self.indent_level+=1 + for s in self.build.targets[name].sources: + if not self.environment.is_header(s): + self.write_line('%s /* %s */,' % (self.buildmap[s], os.path.join(self.environment.get_source_dir(), s))) + self.indent_level-=1 + self.write_line('runOnlyForDeploymentPostprocessing = 0;') + self.indent_level-=1 + self.write_line('};') self.ofile.write('/* End PBXSourcesBuildPhase section */\n') def generate_pbx_target_dependency(self): |