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"); } } UpdatePropsAttribute(settings, weak, "Weak"); UpdatePropsAttribute(settings, codeSignOnCopy, "CodeSignOnCopy"); UpdatePropsAttribute(settings, removeHeadersOnCopy, "RemoveHeadersOnCopy"); 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"); } }
public void AddCodeSignOnCopy() { codeSignOnCopy = true; removeHeadersOnCopy = true; PBXElementDict settings = null; if (m_Properties.Contains("settings")) { settings = m_Properties["settings"].AsDict(); } if (settings == null) { settings = m_Properties.CreateDict("settings"); } PBXElementArray attrs = null; if (settings.Contains("ATTRIBUTES")) { attrs = settings["ATTRIBUTES"].AsArray(); } else { attrs = settings.CreateArray("ATTRIBUTES"); } { bool exists = false; foreach (var value in attrs.values) { if (value is PBXElementString && value.AsString() == "CodeSignOnCopy") { exists = true; } } if (!exists) { attrs.AddString("CodeSignOnCopy"); } } { bool exists = false; foreach (var value in attrs.values) { if (value is PBXElementString && value.AsString() == "RemoveHeadersOnCopy") { exists = true; } } if (!exists) { attrs.AddString("RemoveHeadersOnCopy"); } } }
public static PBXElementDict ParseTreeAST(TreeAST ast, TokenList tokens, string text) { var el = new PBXElementDict(); foreach (var kv in ast.values) { PBXElementString key = ParseIdentifierAST(kv.key, tokens, text); PBXElement value = ParseValueAST(kv.value, tokens, text); el[key.value] = value; } return(el); }
void UpdatePropsAttribute(PBXElementDict settings, bool v, string attributeName) { if (v) { if (settings == null) { settings = m_Properties.CreateDict("settings"); } PBXElementArray attrs = null; if (settings.Contains("ATTRIBUTES")) { attrs = settings["ATTRIBUTES"].AsArray(); } else { attrs = settings.CreateArray("ATTRIBUTES"); } bool exists = false; foreach (var value in attrs.values) { if (value is PBXElementString && value.AsString() == attributeName) { exists = true; break; } } if (!exists) { attrs.AddString(attributeName); } } else { if (settings != null && settings.Contains("ATTRIBUTES")) { var attrs = settings["ATTRIBUTES"].AsArray(); attrs.values.RemoveAll(el => (el is PBXElementString && el.AsString() == attributeName)); if (attrs.values.Count == 0) { settings.Remove("ATTRIBUTES"); } } } }
internal void SetPropertiesWhenSerializing(PBXElementDict props) { m_Properties = props; }
public abstract void AddObject(string key, PBXElementDict value);