public void ApplyMod( XCMod mod )
        {
            PBXGroup modGroup = this.GetGroup( mod.group );

            foreach( XCModFile libRef in mod.libs ) {
                string completeLibPath;
                if(libRef.sourceTree.Equals("SDKROOT")) {
                    completeLibPath = System.IO.Path.Combine( "usr/lib", libRef.filePath );
                }
                else {
                    completeLibPath = System.IO.Path.Combine( mod.path, libRef.filePath );
                }

                this.AddFile( completeLibPath, modGroup, libRef.sourceTree, true, libRef.isWeak );
            }

            PBXGroup frameworkGroup = this.GetGroup( "Frameworks" );
            foreach( string framework in mod.frameworks ) {
                string[] filename = framework.Split( ':' );
                bool isWeak = ( filename.Length > 1 ) ? true : false;
                string completePath = System.IO.Path.Combine( "System/Library/Frameworks", filename[0] );
                this.AddFile( completePath, frameworkGroup, "SDKROOT", true, isWeak );
            }

            foreach( string filePath in mod.files ) {
                string absoluteFilePath = System.IO.Path.Combine( mod.path, filePath );
                this.AddFile( absoluteFilePath, modGroup );
            }

            foreach( string folderPath in mod.folders ) {
                string absoluteFolderPath = AddXcodeQuotes(System.IO.Path.Combine( mod.path, folderPath ));
                this.AddFolder( absoluteFolderPath, modGroup, (string[])mod.excludes.ToArray(  ) );
            }

            foreach( string headerpath in mod.headerpaths ) {
                string absoluteHeaderPath = AddXcodeQuotes( System.IO.Path.Combine( mod.path, headerpath ) );
                this.AddHeaderSearchPaths( absoluteHeaderPath );
            }

            foreach( string librarypath in mod.librarysearchpaths ) {
                string absolutePath = AddXcodeQuotes(System.IO.Path.Combine( mod.path, librarypath ));
                this.AddLibrarySearchPaths( absolutePath );
            }

            if(mod.frameworksearchpath != null)
            {
                foreach( string frameworksearchpath in mod.frameworksearchpath ) {
                    string absoluteHeaderPath = AddXcodeQuotes(System.IO.Path.Combine( mod.path, frameworksearchpath ));
                    this.AddFrameworkSearchPaths( absoluteHeaderPath );
                }
            }

            this.Consolidate();
        }
 public void ApplyMod( string rootPath, string pbxmod )
 {
     XCMod mod = new XCMod( rootPath, pbxmod );
     ApplyMod( mod );
 }