Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 42 additions & 19 deletions XCBuildConfiguration.cs
Original file line number Diff line number Diff line change
Expand Up @@ -175,26 +175,49 @@ public bool overwriteBuildSetting(string settingName, string settingValue) {
if( !ContainsKey( BUILDSETTINGS_KEY ) ) {
Debug.Log ("creating key " + BUILDSETTINGS_KEY);
this.Add( BUILDSETTINGS_KEY, new PBXSortedDictionary() );
}

if( !((PBXDictionary)_data[BUILDSETTINGS_KEY]).ContainsKey( settingName ) ) {
Debug.Log("adding key " + settingName);
((PBXDictionary)_data[BUILDSETTINGS_KEY]).Add( settingName, new PBXList() );
}
else if ( ((PBXDictionary)_data[BUILDSETTINGS_KEY])[ settingName ] is string ) {
//Debug.Log("key is string:" + settingName);
//string tempString = (string)((PBXDictionary)_data[BUILDSETTINGS_KEY])[settingName];
((PBXDictionary)_data[BUILDSETTINGS_KEY])[ settingName ] = new PBXList();
//((PBXList)((PBXDictionary)_data[BUILDSETTINGS_KEY])[settingName]).Add( tempString );
}

if( !((PBXList)((PBXDictionary)_data[BUILDSETTINGS_KEY])[settingName]).Contains( settingValue ) ) {
Debug.Log("setting " + settingName + " to " + settingValue);
((PBXList)((PBXDictionary)_data[BUILDSETTINGS_KEY])[settingName]).Add( settingValue );
modified = true;
}
}


//fix string type show is array
/*
if( !((PBXDictionary)_data[BUILDSETTINGS_KEY]).ContainsKey( settingName ) ) {
Debug.Log("adding key " + settingName);
((PBXDictionary)_data[BUILDSETTINGS_KEY]).Add( settingName, new PBXList() );
}

else if ( ((PBXDictionary)_data[BUILDSETTINGS_KEY])[ settingName ] is string ) {
//Debug.Log("key is string:" + settingName);
//string tempString = (string)((PBXDictionary)_data[BUILDSETTINGS_KEY])[settingName];
((PBXDictionary)_data[BUILDSETTINGS_KEY])[ settingName ] = new PBXList();
//((PBXList)((PBXDictionary)_data[BUILDSETTINGS_KEY])[settingName]).Add( tempString );
}

return modified;
if( !((PBXList)((PBXDictionary)_data[BUILDSETTINGS_KEY])[settingName]).Contains( settingValue ) ) {
Debug.Log("setting " + settingName + " to " + settingValue);
((PBXList)((PBXDictionary)_data[BUILDSETTINGS_KEY])[settingName]).Add( settingValue );
modified = true;
}
*/
if (!((PBXDictionary)_data[BUILDSETTINGS_KEY]).ContainsKey(settingName))
{
Debug.Log("adding key " + settingName);
((PBXDictionary)_data[BUILDSETTINGS_KEY]).Add(settingName, new PBXList());
((PBXList)((PBXDictionary)_data[BUILDSETTINGS_KEY])[settingName]).Add(settingValue);
modified = true;
}
else if (((PBXDictionary)_data[BUILDSETTINGS_KEY])[settingName] is string)
{
((PBXDictionary)_data[BUILDSETTINGS_KEY])[settingName] = settingValue;
modified = true;
}
else if (!((PBXList)((PBXDictionary)_data[BUILDSETTINGS_KEY])[settingName]).Contains(settingValue))
{
Debug.Log("setting " + settingName + " to " + settingValue);
((PBXList)((PBXDictionary)_data[BUILDSETTINGS_KEY])[settingName]).Add(settingValue);
modified = true;
}

return modified;
}
}
}
109 changes: 98 additions & 11 deletions XCMod.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,14 @@ public string group {
}

public ArrayList patches {
get {
return (ArrayList)_datastore["patches"];
get {
//return (ArrayList)_datastore["patches"];
ArrayList p_ = (ArrayList)_datastore["patches"];
if ( null == p_ )
{
return new ArrayList();
}
return p_;
}
}

Expand All @@ -41,57 +47,138 @@ public ArrayList libs {

public ArrayList frameworks {
get {
return (ArrayList)_datastore["frameworks"];
//return (ArrayList)_datastore["frameworks"];
ArrayList p_ = (ArrayList)_datastore["frameworks"];
if (null == p_)
{
return new ArrayList();
}
return p_;
}
}

public ArrayList headerpaths {
get {
return (ArrayList)_datastore["headerpaths"];
//return (ArrayList)_datastore["headerpaths"];
ArrayList p_ = (ArrayList)_datastore["headerpaths"];
if (null == p_)
{
return new ArrayList();
}
return p_;
}
}

public ArrayList files {
get {
return (ArrayList)_datastore["files"];
//return (ArrayList)_datastore["files"];
ArrayList p_ = (ArrayList)_datastore["files"];
if (null == p_)
{
return new ArrayList();
}
return p_;
}
}

public ArrayList folders {
get {
return (ArrayList)_datastore["folders"];
//return (ArrayList)_datastore["folders"];
ArrayList p_ = (ArrayList)_datastore["folders"];
if (null == p_)
{
return new ArrayList();
}
return p_;
}
}

public ArrayList excludes {
get {
return (ArrayList)_datastore["excludes"];
//return (ArrayList)_datastore["excludes"];
ArrayList p_ = (ArrayList)_datastore["excludes"];
if (null == p_)
{
return new ArrayList();
}
return p_;
}
}

public ArrayList compiler_flags {
get {
return (ArrayList)_datastore["compiler_flags"];
//return (ArrayList)_datastore["compiler_flags"];
ArrayList p_ = (ArrayList)_datastore["compiler_flags"];
if (null == p_)
{
return new ArrayList();
}
return p_;
}
}

public ArrayList linker_flags {
get {
return (ArrayList)_datastore["linker_flags"];
//return (ArrayList)_datastore["linker_flags"];
ArrayList p_ = (ArrayList)_datastore["linker_flags"];
if (null == p_)
{
return new ArrayList();
}
return p_;
}
}

public ArrayList embed_binaries {
get {
return (ArrayList)_datastore["embed_binaries"];
//return (ArrayList)_datastore["embed_binaries"];
ArrayList p_ = (ArrayList)_datastore["embed_binaries"];
if (null == p_)
{
return new ArrayList();
}
return p_;
}
}

public Hashtable plist {
get {
return (Hashtable)_datastore["plist"];
//return (Hashtable)_datastore["plist"];
Hashtable p_ = (Hashtable)_datastore["plist"];
if (null == p_)
{
return new Hashtable();
}
return p_;
}
}

public Hashtable settings
{
get {
//return (Hashtable)_datastore["settings"];
Hashtable p_ = (Hashtable)_datastore["settings"];
if (null == p_)
{
return new Hashtable();
}
return p_;
}
}

public Hashtable textModify
{
get
{
//return (Hashtable)_datastore["textModify"];
Hashtable p_ = (Hashtable)_datastore["textModify"];
if (null == p_)
{
return new Hashtable();
}
return p_;
}
}

public XCMod( string filename )
{
Expand Down
22 changes: 15 additions & 7 deletions XCPlist.cs
Original file line number Diff line number Diff line change
Expand Up @@ -58,11 +58,16 @@ public void AddPlistItems(string key, object value, Dictionary<string, object> d
{
processUrlTypes((ArrayList)value, dict);
}
else
else if ( value is Hashtable)
{
dict[key] = HashtableToDictionary<string, object>((Hashtable)value);
plistModified = true;
}
else
{
dict[key] = value;
plistModified = true;
}
}

private void processUrlTypes(ArrayList urltypes, Dictionary<string, object> dict)
Expand Down Expand Up @@ -119,12 +124,15 @@ private Dictionary<string, object> findUrlTypeByName(List<object> bundleUrlTypes
return null;

foreach(Dictionary<string, object> dict in bundleUrlTypes)
{
string _n = (string)dict[BundleUrlName];
if (string.Compare(_n, name) == 0)
{
return dict;
}
{
if (dict.ContainsKey(BundleUrlName))
{
string _n = (string)dict[BundleUrlName];
if (string.Compare(_n, name) == 0)
{
return dict;
}
}
}
return null;
}
Expand Down
Loading