public override void UpdateVars() { projectReferences = new List <ProjectReference>(); if (m_Properties.Contains("projectReferences")) { var el = m_Properties["projectReferences"].AsArray(); foreach (var value in el.values) { PBXElementDict dict = value.AsDict(); if (dict.Contains("ProductGroup") && dict.Contains("ProjectRef")) { string group = dict["ProductGroup"].AsString(); string projectRef = dict["ProjectRef"].AsString(); projectReferences.Add(ProjectReference.Create(group, projectRef)); } } } targets = GetPropertyList("targets"); buildConfigList = GetPropertyString("buildConfigurationList"); // update knownAssetTags knownAssetTags = new List <string>(); if (m_Properties.Contains("attributes")) { var el = m_Properties["attributes"].AsDict(); if (el.Contains("knownAssetTags")) { var tags = el["knownAssetTags"].AsArray(); foreach (var tag in tags.values) { knownAssetTags.Add(tag.AsString()); } } } }
public static void WriteDict(StringBuilder sb, PBXElementDict el, int indent, bool compact, PropertyCommentChecker checker, GUIDToCommentMap comments) { sb.Append("{"); if (el.Contains("isa")) { WriteDictKeyValue(sb, "isa", el["isa"], indent + 1, compact, checker, comments); } var keys = new List <string>(el.values.Keys); keys.Sort(StringComparer.Ordinal); foreach (var key in keys) { if (key != "isa") { WriteDictKeyValue(sb, key, el[key], indent + 1, compact, checker, comments); } } if (!compact) { sb.Append("\n"); sb.Append(GetIndent(indent)); } sb.Append("}"); }
public override void UpdateProps() { SetPropertyString("fileRef", fileRef); PBXElementDict settings = null; if (m_Properties.Contains("settings")) { settings = m_Properties["settings"].AsDict(); } if (compileFlags != null && compileFlags != "") { if (settings == null) { settings = m_Properties.CreateDict("settings"); } settings.SetString("COMPILER_FLAGS", compileFlags); } else { if (settings != null) { settings.Remove("COMPILER_FLAGS"); } } if (weak || codeSignOnCopy || removeHeadersOnCopy) { if (settings == null) { settings = m_Properties.CreateDict("settings"); } PBXElementArray attrs = null; if (settings.Contains("ATTRIBUTES")) { attrs = settings["ATTRIBUTES"].AsArray(); } else { attrs = settings.CreateArray("ATTRIBUTES"); } if (codeSignOnCopy) { CheckParameterInAtributes(attrs, "CodeSignOnCopy"); } if (removeHeadersOnCopy) { CheckParameterInAtributes(attrs, "RemoveHeadersOnCopy"); } if (weak) { CheckParameterInAtributes(attrs, "Weak"); } } else { if (settings != null && settings.Contains("ATTRIBUTES")) { var attrs = settings["ATTRIBUTES"].AsArray(); attrs.values.RemoveAll(el => (el is PBXElementString && el.AsString() == "Weak")); if (attrs.values.Count == 0) { settings.Remove("ATTRIBUTES"); } } } if (assetTags.Count > 0) { if (settings == null) { settings = m_Properties.CreateDict("settings"); } var tagsArray = settings.CreateArray("ASSET_TAGS"); foreach (string tag in assetTags) { tagsArray.AddString(tag); } } else { if (settings != null) { settings.Remove("ASSET_TAGS"); } } if (settings != null && settings.values.Count == 0) { m_Properties.Remove("settings"); } }