public void ApplyMod(string pbxmod) { XCMod mod = new XCMod(pbxmod); foreach (var lib in mod.libs) { Debug.Log("Library: " + lib); } ApplyMod(mod); }
public void ApplyMod(XCMod mod) { PBXGroup modGroup = this.GetGroup(mod.group); Debug.Log("Adding libraries..."); foreach (XCModFile libRef in mod.libs) { string completeLibPath = System.IO.Path.Combine("usr/lib", libRef.filePath); Debug.Log("Adding library " + completeLibPath); this.AddFile(completeLibPath, modGroup, "SDKROOT", true, libRef.isWeak); } Debug.Log("Adding frameworks..."); 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); } Debug.Log("Adding files..."); foreach (string filePath in mod.files) { string absoluteFilePath = System.IO.Path.Combine(mod.path, filePath); this.AddFile(absoluteFilePath, modGroup); } Debug.Log("Adding embed binaries..."); if (mod.embed_binaries != null) { //1. Add LD_RUNPATH_SEARCH_PATHS for embed framework this.overwriteBuildSetting("LD_RUNPATH_SEARCH_PATHS", "$(inherited) @executable_path/Frameworks", "Release"); this.overwriteBuildSetting("LD_RUNPATH_SEARCH_PATHS", "$(inherited) @executable_path/Frameworks", "Debug"); foreach (string binary in mod.embed_binaries) { string absoluteFilePath = System.IO.Path.Combine(mod.path, binary); this.AddEmbedFramework(absoluteFilePath); } } Debug.Log("Adding folders..."); foreach (string folderPath in mod.folders) { string absoluteFolderPath = System.IO.Path.Combine(Application.dataPath, folderPath); Debug.Log("Adding folder " + absoluteFolderPath); this.AddFolder(absoluteFolderPath, modGroup, (string[])mod.excludes.ToArray(typeof(string))); } Debug.Log("Adding headerpaths..."); foreach (string headerpath in mod.headerpaths) { if (headerpath.Contains("$(inherited)")) { Debug.Log("not prepending a path to " + headerpath); this.AddHeaderSearchPaths(headerpath); } else { string absoluteHeaderPath = System.IO.Path.Combine(mod.path, headerpath); this.AddHeaderSearchPaths(absoluteHeaderPath); } } Debug.Log("Adding compiler flags..."); if (mod.compiler_flags != null) { foreach (string flag in mod.compiler_flags) { this.AddOtherCFlags(flag); } } Debug.Log("Adding linker flags..."); if (mod.linker_flags != null) { foreach (string flag in mod.linker_flags) { this.AddOtherLinkerFlags(flag); } } Debug.Log("Adding plist items..."); string plistPath = this.projectRootPath + "/Info.plist"; XCPlist plist = new XCPlist(plistPath); plist.Process(mod.plist); this.Consolidate(); }
public void ApplyMod( XCMod mod ) { PBXGroup modGroup = this.GetGroup( mod.group ); Debug.Log( "Adding libraries..." ); foreach( XCModFile libRef in mod.libs ) { string completeLibPath = System.IO.Path.Combine( "usr/lib", libRef.filePath ); Debug.Log ("Adding library " + completeLibPath); this.AddFile( completeLibPath, modGroup, "SDKROOT", true, libRef.isWeak ); } Debug.Log( "Adding frameworks..." ); 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 ); } Debug.Log( "Adding files..." ); foreach( string filePath in mod.files ) { string absoluteFilePath = System.IO.Path.Combine( mod.path, filePath ); this.AddFile( absoluteFilePath, modGroup ); } Debug.Log( "Adding embed binaries..." ); if (mod.embed_binaries != null) { //1. Add LD_RUNPATH_SEARCH_PATHS for embed framework this.overwriteBuildSetting("LD_RUNPATH_SEARCH_PATHS", "$(inherited) @executable_path/Frameworks", "Release"); this.overwriteBuildSetting("LD_RUNPATH_SEARCH_PATHS", "$(inherited) @executable_path/Frameworks", "Debug"); foreach( string binary in mod.embed_binaries ) { string absoluteFilePath = System.IO.Path.Combine( mod.path, binary ); this.AddEmbedFramework(absoluteFilePath); } } Debug.Log( "Adding folders..." ); foreach( string folderPath in mod.folders ) { string absoluteFolderPath = System.IO.Path.Combine( Application.dataPath, folderPath ); Debug.Log ("Adding folder " + absoluteFolderPath); this.AddFolder( absoluteFolderPath, modGroup, (string[])mod.excludes.ToArray( typeof(string) ) ); } Debug.Log( "Adding headerpaths..." ); foreach( string headerpath in mod.headerpaths ) { if (headerpath.Contains("$(inherited)")) { Debug.Log ("not prepending a path to " + headerpath); this.AddHeaderSearchPaths( headerpath ); } else { string absoluteHeaderPath = System.IO.Path.Combine( mod.path, headerpath ); this.AddHeaderSearchPaths( absoluteHeaderPath ); } } Debug.Log( "Adding compiler flags..." ); if (mod.compiler_flags != null) foreach( string flag in mod.compiler_flags ) { this.AddOtherCFlags( flag ); } Debug.Log( "Adding linker flags..." ); if (mod.linker_flags != null) foreach( string flag in mod.linker_flags ) { this.AddOtherLinkerFlags( flag ); } Debug.Log ("Adding plist items..."); string plistPath = this.projectRootPath + "/Info.plist"; XCPlist plist = new XCPlist (plistPath); plist.Process(mod.plist); this.Consolidate(); }
public void ApplyMod( string pbxmod ) { XCMod mod = new XCMod( pbxmod ); foreach(var lib in mod.libs){ Debug.Log("Library: "+lib); } ApplyMod( mod ); }