public bool AddOtherCFlags(PBXList flags)
		{
			bool modified = false;

			if(!ContainsKey(BUILDSETTINGS_KEY))
				this.Add(BUILDSETTINGS_KEY, new PBXDictionary());

			foreach(string flag in flags) {

				if(!((PBXDictionary)_data[BUILDSETTINGS_KEY]).ContainsKey(OTHER_C_FLAGS_KEY)) {
					((PBXDictionary)_data[BUILDSETTINGS_KEY]).Add(OTHER_C_FLAGS_KEY, new PBXList());
				} else if(((PBXDictionary)_data[BUILDSETTINGS_KEY])[OTHER_C_FLAGS_KEY] is string) {
					string tempString = (string)((PBXDictionary)_data[BUILDSETTINGS_KEY])[OTHER_C_FLAGS_KEY];
					((PBXDictionary)_data[BUILDSETTINGS_KEY])[OTHER_C_FLAGS_KEY] = new PBXList();
					((PBXList)((PBXDictionary)_data[BUILDSETTINGS_KEY])[OTHER_C_FLAGS_KEY]).Add(tempString);
				}

				if(!((PBXList)((PBXDictionary)_data[BUILDSETTINGS_KEY])[OTHER_C_FLAGS_KEY]).Contains(flag)) {
					((PBXList)((PBXDictionary)_data[BUILDSETTINGS_KEY])[OTHER_C_FLAGS_KEY]).Add(flag);
					modified = true;
				}
			}

			return modified;
		}
		protected bool AddSearchPaths(PBXList paths, string key, bool recursive = true)
		{
			bool modified = false;

			if(!ContainsKey(BUILDSETTINGS_KEY))
				this.Add(BUILDSETTINGS_KEY, new PBXDictionary());

			foreach(string path in paths) {
				string currentPath = path;
				if(recursive && !path.EndsWith("/**"))
					currentPath += "**";
				if(!((PBXDictionary)_data[BUILDSETTINGS_KEY]).ContainsKey(key)) {
					((PBXDictionary)_data[BUILDSETTINGS_KEY]).Add(key, new PBXList());
				} else if(((PBXDictionary)_data[BUILDSETTINGS_KEY])[key] is string) {
					PBXList list = new PBXList();
					list.Add(((PBXDictionary)_data[BUILDSETTINGS_KEY])[key]);
					((PBXDictionary)_data[BUILDSETTINGS_KEY])[key] = list;
				}


				if(!((PBXList)((PBXDictionary)_data[BUILDSETTINGS_KEY])[key]).Contains(currentPath)) {
					((PBXList)((PBXDictionary)_data[BUILDSETTINGS_KEY])[key]).Add(currentPath);
					modified = true;
				}
			}

			return modified;
		}
Example #3
0
		public bool SetWeakLink(bool weak = false)
		{
			PBXDictionary settings = null;
			PBXList attributes = null;

			if(!_data.ContainsKey(SETTINGS_KEY)) {
				if(weak) {
					attributes = new PBXList();
					attributes.internalNewlines = false;
					attributes.Add(WEAK_VALUE);

					settings = new PBXDictionary();
					settings.Add(ATTRIBUTES_KEY, attributes);
					settings.internalNewlines = false;

					this.Add(SETTINGS_KEY, settings);
				}
				return true;
			}

			settings = _data[SETTINGS_KEY] as PBXDictionary;
			settings.internalNewlines = false;
			if(!settings.ContainsKey(ATTRIBUTES_KEY)) {
				if(weak) {
					attributes = new PBXList();
					attributes.internalNewlines = false;
					attributes.Add(WEAK_VALUE);
					settings.Add(ATTRIBUTES_KEY, attributes);
					return true;
				} else {
					return false;
				}
			} else {
				attributes = settings[ATTRIBUTES_KEY] as PBXList;
			}

			attributes.internalNewlines = false;
			if(weak) {
				attributes.Add(WEAK_VALUE);
			} else {
				attributes.Remove(WEAK_VALUE);
			}

			settings.Add(ATTRIBUTES_KEY, attributes);
			this.Add(SETTINGS_KEY, settings);

			return true;
		}
        protected bool AddSearchPaths(PBXList paths, string key, bool recursive = true)
        {
            bool modified = false;

            if (!ContainsKey(BUILDSETTINGS_KEY))
            {
                this.Add(BUILDSETTINGS_KEY, new PBXDictionary());
            }

            foreach (string path in paths)
            {
                string currentPath = path;
                if (recursive && !path.EndsWith("/**"))
                {
                    currentPath += "**";
                }
                if (!((PBXDictionary)_data[BUILDSETTINGS_KEY]).ContainsKey(key))
                {
                    ((PBXDictionary)_data[BUILDSETTINGS_KEY]).Add(key, new PBXList());
                }
                else if (((PBXDictionary)_data[BUILDSETTINGS_KEY])[key] is string)
                {
                    PBXList list = new PBXList();
                    list.Add(((PBXDictionary)_data[BUILDSETTINGS_KEY])[key]);
                    ((PBXDictionary)_data[BUILDSETTINGS_KEY])[key] = list;
                }


                if (!((PBXList)((PBXDictionary)_data[BUILDSETTINGS_KEY])[key]).Contains(currentPath))
                {
                    ((PBXList)((PBXDictionary)_data[BUILDSETTINGS_KEY])[key]).Add(currentPath);
                    modified = true;
                }
            }

            return(modified);
        }
Example #5
0
 public bool AddOtherCFlags(PBXList flags)
 {
     foreach(KeyValuePair<string, XCBuildConfiguration> buildConfig in buildConfigurations) {
         buildConfig.Value.AddOtherCFlags(flags);
     }
     modified = true;
     return modified;
 }
Example #6
0
 public bool AddLibrarySearchPaths(PBXList paths)
 {
     foreach(KeyValuePair<string, XCBuildConfiguration> buildConfig in buildConfigurations) {
         buildConfig.Value.AddLibrarySearchPaths(paths, false);
     }
     modified = true;
     return modified;
 }
		public bool AddOtherCFlags(string flag)
		{
			PBXList flags = new PBXList();
			flags.Add(flag);
			return AddOtherCFlags(flags);
		}
		public bool AddFrameworkSearchPaths(PBXList paths, bool recursive = true)
		{
			return this.AddSearchPaths(paths, FRAMEWORK_SEARCH_PATHS_KEY, recursive);
		}
		public bool AddLibrarySearchPaths(PBXList paths, bool recursive = true)
		{
			return this.AddSearchPaths(paths, LIBRARY_SEARCH_PATHS_KEY, recursive);
		}
		public bool AddHeaderSearchPaths(PBXList paths, bool recursive = true)
		{
			return this.AddSearchPaths(paths, HEADER_SEARCH_PATHS_KEY, recursive);
		}
		protected bool AddSearchPaths(string path, string key, bool recursive = true)
		{
			PBXList paths = new PBXList();
			paths.Add(path);
			return AddSearchPaths(paths, key, recursive);
		}
Example #12
0
		private PBXList ParseArray()
		{
			PBXList list = new PBXList();
			bool complete = false;
			while(!complete) {
				switch(NextToken()) {
				case END_OF_FILE:
					Debug.Log("Error: Reached end of file inside a list: " + list);
					complete = true;
					break;
				case ARRAY_END_TOKEN:
					complete = true;
					break;
				case ARRAY_ITEM_DELIMITER_TOKEN:
					break;
				default:
					StepBackward();
					list.Add(ParseValue());
					break;
				}
			}
			return list;
		}
 public bool AddFrameworkSearchPaths(PBXList paths, bool recursive = true)
 {
     return(this.AddSearchPaths(paths, FRAMEWORK_SEARCH_PATHS_KEY, recursive));
 }
 public bool AddLibrarySearchPaths(PBXList paths, bool recursive = true)
 {
     return(this.AddSearchPaths(paths, LIBRARY_SEARCH_PATHS_KEY, recursive));
 }
 public bool AddHeaderSearchPaths(PBXList paths, bool recursive = true)
 {
     return(this.AddSearchPaths(paths, HEADER_SEARCH_PATHS_KEY, recursive));
 }