From 87f1007ba76be2e59690c6c144ae64c268b0193a Mon Sep 17 00:00:00 2001 From: Jussi Pakkanen Date: Sat, 3 Apr 2021 23:47:35 +0300 Subject: Reduce verbosity. --- mesonbuild/backend/xcodebackend.py | 48 +++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/mesonbuild/backend/xcodebackend.py b/mesonbuild/backend/xcodebackend.py index cfbe42e..a9ffb39 100644 --- a/mesonbuild/backend/xcodebackend.py +++ b/mesonbuild/backend/xcodebackend.py @@ -34,9 +34,11 @@ class PbxArray: def __init__(self): self.items = [] - def add_item(self, item): - assert(isinstance(item, PbxArrayItem)) - self.items.append(item) + def add_item(self, item, comment=''): + if isinstance(item, PbxArrayItem): + self.items.append(item) + else: + self.items.append(PbxArrayItem(item, comment)) def write(self, ofile, indent_level): ofile.write('(\n') @@ -79,19 +81,23 @@ class PbxDictItem: class PbxDict: def __init__(self): - # This class is a bit weird, becaucse we want to write PBX dicts in + # This class is a bit weird, because we want to write PBX dicts in # defined order _and_ we want to write intermediate comments also in order. self.keys = set() self.items = [] - def add_item(self, item): - key = item.key + def add_item(self, key, value, comment=''): + item = PbxDictItem(key, value, comment) assert(key not in self.keys) self.keys.add(key) self.items.append(item) def add_comment(self, comment): - self.items.append(comment) + if isinstance(comment, str): + self.items.append(PbxComment(str)) + else: + assert(isinstance(comment, PbxComment)) + self.items.append(comment) def write(self, ofile, indent_level): ofile.write('{\n') @@ -366,34 +372,34 @@ class XCodeBackend(backends.Backend): self.write_line('{} /* {} */ = {{'.format(t[0], name)) self.indent_level += 1 self.write_line('isa = PBXAggregateTarget;') - agt_dict.add_item(PbxDictItem('isa', 'PBXAggregateTarget')) + agt_dict.add_item('isa', 'PBXAggregateTarget') self.write_line(f'buildConfigurationList = {buildconf_id} /* Build configuration list for PBXAggregateTarget "{name}" */;') - agt_dict.add_item(PbxDictItem('buildConfigurationList', buildconf_id)) + agt_dict.add_item('buildConfigurationList', buildconf_id) self.write_line('buildPhases = (') bp_arr = PbxArray() - agt_dict.add_item(PbxDictItem('buildPhases', bp_arr)) + agt_dict.add_item('buildPhases', bp_arr) self.indent_level += 1 for bp in build_phases: self.write_line('%s /* ShellScript */,' % bp) - bp_arr.add_item(PbxArrayItem(bp, 'ShellScript')) + bp_arr.add_item(bp, 'ShellScript') self.indent_level -= 1 self.write_line(');') self.write_line('dependencies = (') dep_arr = PbxArray() - agt_dict.add_item(PbxDictItem('dependencies', dep_arr)) + agt_dict.add_item('dependencies', dep_arr) self.indent_level += 1 for td in dependencies: self.write_line('%s /* PBXTargetDependency */,' % td) - dep_arr.add_item(PbxArrayItem(td, 'PBXTargetDependency')) + dep_arr.add_item(td, 'PBXTargetDependency') self.indent_level -= 1 self.write_line(');') self.write_line('name = %s;' % name) - agt_dict.add_item(PbxDictItem('name', name)) + agt_dict.add_item('name', name) self.write_line('productName = %s;' % name) - agt_dict.add_item(PbxDictItem('productname', name)) + agt_dict.add_item('productname', name) self.indent_level -= 1 self.write_line('};') - objects_dict.add_item(PbxDictItem(t[0], agt_dict, name)) + objects_dict.add_item(t[0], agt_dict, name) self.ofile.write('/* End PBXAggregateTarget section */\n') def generate_pbx_build_file(self): @@ -1058,15 +1064,15 @@ class XCodeBackend(backends.Backend): self.ofile.write('// !$*UTF8*$!\n{\n') self.indent_level += 1 self.write_line('archiveVersion = 1;\n') - pbxdict.add_item(PbxDictItem('archiveVersion', '1')) + pbxdict.add_item('archiveVersion', '1') self.write_line('classes = {\n') self.write_line('};\n') - pbxdict.add_item(PbxDictItem('classes', PbxDict())) + pbxdict.add_item('classes', PbxDict()) self.write_line('objectVersion = 46;\n') - pbxdict.add_item(PbxDictItem('objectVersion', '46')) + pbxdict.add_item('objectVersion', '46') self.write_line('objects = {\n') objects_dict = PbxDict() - pbxdict.add_item(PbxDictItem('objects', objects_dict)) + pbxdict.add_item('objects', objects_dict) self.indent_level += 1 return objects_dict @@ -1075,6 +1081,6 @@ class XCodeBackend(backends.Backend): self.indent_level -= 1 self.write_line('};\n') self.write_line('rootObject = ' + self.project_uid + ' /* Project object */;') - pbxdict.add_item(PbxDictItem('rootObject', self.project_uid, 'Project object')) + pbxdict.add_item('rootObject', self.project_uid, 'Project object') self.indent_level -= 1 self.write_line('}\n') -- cgit v1.1