diff options
Diffstat (limited to 'backends.py')
-rw-r--r-- | backends.py | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/backends.py b/backends.py index 974dffa..723b4c7 100644 --- a/backends.py +++ b/backends.py @@ -1592,12 +1592,14 @@ class XCodeBackend(Backend): def __init__(self, build, interp): super().__init__(build, interp) self.project_uid = self.environment.coredata.guid.replace('-', '')[:24] + self.project_conflist = self.gen_id() self.indent = ' ' self.indent_level = 0 self.xcodetypemap = {'c' : 'sourcecode.c.c', 'a' : 'archive.ar'} self.maingroup_id = self.gen_id() self.all_id = self.gen_id() self.all_buildconf_id = self.gen_id() + self.buildtypes = ['debug'] def gen_id(self): return str(uuid.uuid4()).upper().replace('-', '')[:24] @@ -1614,6 +1616,7 @@ class XCodeBackend(Backend): self.generate_build_phase_map() self.generate_build_configuration_map() self.generate_build_configurationlist_map() + self.generate_project_configurations_map() self.generate_native_target_map() self.generate_source_phase_map() self.generate_target_dependency_map() @@ -1674,6 +1677,9 @@ class XCodeBackend(Backend): bconfs = {'debug' : self.gen_id()} self.buildconfmap[t] = bconfs + def generate_project_configurations_map(self): + self.project_configurations = {'debug' : self.gen_id()} + def generate_build_configurationlist_map(self): self.buildconflistmap = {} for t in self.build.targets: @@ -1933,9 +1939,7 @@ class XCodeBackend(Backend): self.indent_level -= 1 self.write_line('};') conftempl = 'buildConfigurationList = %s /* build configuration list for PBXProject "%s"*/;' - for t in self.build.targets: - idval = self.buildconflistmap[t] - self.write_line(conftempl % (idval, t)) + self.write_line(conftempl % (self.project_conflist, self.build.project_name)) self.write_line('buildSettings = {') self.write_line('};') self.write_line('buildStyles = (') @@ -1991,20 +1995,34 @@ class XCodeBackend(Backend): self.indent_level += 1 self.write_line('isa = PBXTargetDependency;') self.write_line('target = %s;' % self.native_targets[t]) - self.write_line('targetProxy = %s\n' % self.containerproxy_map[t]) + self.write_line('targetProxy = %s\n;' % self.containerproxy_map[t]) self.indent_level-=1 self.write_line('};') self.ofile.write('/* End PBXTargetDependency section */\n') def generate_xc_build_configuration(self): self.ofile.write('\n/* Begin XCBuildConfiguration section */\n') + # First the setup for the toplevel project. self.ofile.write('/* End XCBuildConfiguration section */\n') def generate_xc_configurationList(self): self.ofile.write('\n/* Begin XCConfigurationList section */\n') + self.write_line('%s /* BuildConfigurationList for PBXProject "%s" */ = {' % (self.project_conflist, self.build.project_name)) + self.indent_level+=1 + self.write_line('isa = XCConfigurationList;') + self.write_line('buildConfigurations = (') + self.indent_level+=1 + for buildtype in self.buildtypes: + self.write_line('%s /* %s */,' % (self.project_configurations[buildtype], buildtype)) + self.indent_level-=1 + self.write_line(');') + self.write_line('defaultConfigurationIsVisible = 0;') + self.write_line('defaultConfigurationName = debug;') + self.indent_level-=1 + self.write_line('};') for target_name in self.build.targets: listid = self.buildconflistmap[target_name] - self.write_line('%s /* Build configuration list for PBXProject "%s" */ = {' % (listid, target_name)) + self.write_line('%s /* Build configuration list for PBXNativeTarget "%s" */ = {' % (listid, target_name)) self.indent_level += 1 self.write_line('isa = XCConfigurationList;') self.write_line('buildConfigurations = {') |