Inheritance: ArrayList
コード例 #1
0
        public bool AddOtherCFlags( PBXList flags )
        {
            //Debug.Log( "INIZIO 2" );

            bool modified = false;

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

            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;
        }
コード例 #2
0
 public bool AddOtherCFlags( string flag )
 {
     //Debug.Log( "INIZIO 1" );
     PBXList flags = new PBXList();
     flags.Add( flag );
     return AddOtherCFlags( flags );
 }
コード例 #3
0
 public bool AddFrameworkSearchPaths(PBXList paths)
 {
     foreach (KeyValuePair <string, XCBuildConfiguration> buildConfig in buildConfigurations)
     {
         buildConfig.Value.AddFrameworkSearchPaths(paths);
     }
     modified = true;
     return(modified);
 }
コード例 #4
0
 public bool AddOtherLinkerFlags(PBXList flags)
 {
     foreach (KeyValuePair <string, XCBuildConfiguration> buildConfig in buildConfigurations)
     {
         buildConfig.Value.AddOtherLinkerFlags(flags);
     }
     modified = true;
     return(modified);
 }
コード例 #5
0
 public bool AddLibrarySearchPaths(PBXList paths)
 {
     Debug.Log("AddLibrarySearchPaths " + paths);
     foreach (KeyValuePair <string, XCBuildConfiguration> buildConfig in buildConfigurations)
     {
         buildConfig.Value.AddLibrarySearchPaths(paths);
     }
     modified = true;
     return(modified);
 }
コード例 #6
0
        public bool SetWeakLink(bool weak = false)
        {
            PBXDictionary settings   = null;
            PBXList       attributes = null;

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

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

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

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

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

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

            return(true);
        }
コード例 #7
0
        protected bool AddSearchPaths(PBXList paths, string key, bool recursive = true, bool quoted = false)           //we want no quoting whenever we can get away with it
        {
            //Debug.Log ("AddSearchPaths " + paths + key + (recursive?" recursive":"") + " " + (quoted?" quoted":""));
            bool modified = false;

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

            foreach (string path in paths)
            {
                string currentPath = path;
                //Debug.Log ("path " + 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;
                }

                //Xcode uses space as the delimiter here, so if there's a space in the filename, we *must* quote. Escaping with slash may work when you are in the Xcode UI, in some situations, but it doesn't work here.
                if (currentPath.Contains(@" "))
                {
                    quoted = true;
                }

                if (quoted)
                {
                    //if it ends in "/**", it wants to be recursive, and the "/**" needs to be _outside_ the quotes
                    if (currentPath.EndsWith("/**"))
                    {
                        currentPath = "\\\"" + currentPath.Replace("/**", "\\\"/**");
                    }
                    else
                    {
                        currentPath = "\\\"" + currentPath + "\\\"";
                    }
                }
                //Debug.Log ("currentPath = " + currentPath);
                if (!((PBXList)((PBXDictionary)_data[BUILDSETTINGS_KEY])[key]).Contains(currentPath))
                {
                    ((PBXList)((PBXDictionary)_data[BUILDSETTINGS_KEY])[key]).Add(currentPath);
                    modified = true;
                }
            }

            return(modified);
        }
コード例 #8
0
        public bool SetWeakLink( bool weak = false )
        {
            PBXDictionary settings = null;
            PBXList attributes = null;

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

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

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

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

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

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

            return true;
        }
コード例 #9
0
 public bool AddOtherLinkerFlags( PBXList flags )
 {
     foreach( KeyValuePair<string, XCBuildConfiguration> buildConfig in buildConfigurations ) {
         buildConfig.Value.AddOtherLinkerFlags( flags );
     }
     modified = true;
     return modified;
 }
コード例 #10
0
 public bool AddLibrarySearchPaths( PBXList paths, bool recursive = true )
 {
     Debug.Log ("AddLibrarySearchPaths " + paths);
     return this.AddSearchPaths( paths, LIBRARY_SEARCH_PATHS_KEY, recursive );
 }
コード例 #11
0
 public bool AddHeaderSearchPaths( PBXList paths, bool recursive = true )
 {
     return this.AddSearchPaths( paths, HEADER_SEARCH_PATHS_KEY, recursive );
 }
コード例 #12
0
 public bool AddFrameworkSearchPaths( PBXList paths, bool recursive = true )
 {
     return this.AddSearchPaths( paths, FRAMEWORK_SEARCH_PATHS_KEY, recursive );
 }
コード例 #13
0
        //we want no quoting whenever we can get away with it
        protected bool AddSearchPaths( PBXList paths, string key, bool recursive = true, bool quoted = false )
        {
            //Debug.Log ("AddSearchPaths " + paths + key + (recursive?" recursive":"") + " " + (quoted?" quoted":""));
            bool modified = false;

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

            foreach( string path in paths ) {
                string currentPath = path;
                //Debug.Log ("path " + 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;
                }

                //Xcode uses space as the delimiter here, so if there's a space in the filename, we *must* quote. Escaping with slash may work when you are in the Xcode UI, in some situations, but it doesn't work here.
                if (currentPath.Contains(@" ")) quoted = true;

                if (quoted) {
                    //if it ends in "/**", it wants to be recursive, and the "/**" needs to be _outside_ the quotes
                    if (currentPath.EndsWith("/**")) {
                        currentPath = "\\\"" + currentPath.Replace("/**", "\\\"/**");
                    } else {
                        currentPath = "\\\"" + currentPath + "\\\"";
                    }
                }
                //Debug.Log ("currentPath = " + currentPath);
                if( !((PBXList)((PBXDictionary)_data[BUILDSETTINGS_KEY])[key]).Contains( currentPath ) ) {
                    ((PBXList)((PBXDictionary)_data[BUILDSETTINGS_KEY])[key]).Add( currentPath );
                    modified = true;
                }
            }

            return modified;
        }
コード例 #14
0
 protected bool AddSearchPaths( string path, string key, bool recursive = true )
 {
     PBXList paths = new PBXList();
     paths.Add( path );
     return AddSearchPaths( paths, key, recursive );
 }
コード例 #15
0
        public bool overwriteBuildSetting(string settingName, string settingValue)
        {
            Debug.Log ("overwriteBuildSetting " + settingName + " " + settingValue);
            bool modified = false;

            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;
                }

            return modified;
        }
コード例 #16
0
        public bool AddOtherLinkerFlags( PBXList flags )
        {
            bool modified = false;

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

            foreach( string flag in flags ) {

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

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

            return modified;
        }
コード例 #17
0
 public bool AddFrameworkSearchPaths(PBXList paths, bool recursive = true)
 {
     return(this.AddSearchPaths(paths, FRAMEWORK_SEARCH_PATHS_KEY, recursive));
 }
コード例 #18
0
 public bool AddLibrarySearchPaths( PBXList paths )
 {
     Debug.Log ("AddLibrarySearchPaths " + paths);
     foreach( KeyValuePair<string, XCBuildConfiguration> buildConfig in buildConfigurations ) {
         buildConfig.Value.AddLibrarySearchPaths( paths );
     }
     modified = true;
     return modified;
 }
コード例 #19
0
 public bool AddFrameworkSearchPaths( PBXList paths )
 {
     foreach( KeyValuePair<string, XCBuildConfiguration> buildConfig in buildConfigurations ) {
         buildConfig.Value.AddFrameworkSearchPaths( paths );
     }
     modified = true;
     return modified;
 }
コード例 #20
0
 public bool AddHeaderSearchPaths(PBXList paths, bool recursive = true)
 {
     return(this.AddSearchPaths(paths, HEADER_SEARCH_PATHS_KEY, recursive));
 }
コード例 #21
0
 public bool AddOtherLinkerFlags( string flag )
 {
     PBXList flags = new PBXList();
     flags.Add( flag );
     return AddOtherLinkerFlags( flags );
 }
コード例 #22
0
 public bool AddLibrarySearchPaths(PBXList paths, bool recursive = true)
 {
     Debug.Log("AddLibrarySearchPaths " + paths);
     return(this.AddSearchPaths(paths, LIBRARY_SEARCH_PATHS_KEY, recursive));
 }