public static void ZipFilesWindows(IIgorModule ModuleInst, List <string> FilesToZip, string ZipFilename, bool bUpdateBuildProducts, string RootDir) { string ZipCommand = ""; string ZipParams = ""; string PathX86 = "C:\\Program Files (x86)\\7-Zip\\7z.exe"; string Path64 = "C:\\Program Files\\7-Zip\\7z.exe"; if (File.Exists(PathX86)) { ZipCommand = PathX86; ZipParams += "a -tzip \"" + ZipFilename + "\" "; } else if (File.Exists(Path64)) { ZipCommand = Path64; ZipParams += "a -tzip \"" + ZipFilename + "\" "; } else { IgorDebug.LogError(ModuleInst, "7Zip is not installed. Currently 7Zip is the only zip tool supported on Windows.\nPlease download it from here: http://www.7-zip.org/download.html"); IgorDebug.LogError(ModuleInst, "Skipping zip step."); return; } foreach (string CurrentFile in FilesToZip) { ZipParams += "\"" + CurrentFile + "\" "; } string ZipOutput = ""; string ZipError = ""; if (IgorRuntimeUtils.RunProcessCrossPlatform(ModuleInst, "", ZipCommand, ZipParams, Path.GetFullPath(RootDir), "Zipping the files") == 0) { IgorDebug.Log(ModuleInst, "Zip file " + ZipFilename + " created successfully!\nOutput:\n" + ZipOutput + "\nError\n" + ZipError); if (bUpdateBuildProducts) { List <string> NewProducts = new List <string>(); NewProducts.Add(ZipFilename); IgorCore.SetNewModuleProducts(NewProducts); } } }
public static bool AssertTrue(IIgorModule Module, bool bTrue, string FailMessage) { #if DEBUG if (!bTrue) { IgorDebug.LogError(Module, FailMessage); JobFailed(); Debug.Break(); } #endif return(bTrue); }
public virtual void LogError(string Message) { IgorDebug.LogError(this, Message); }
public static void SetDevTeamID(IIgorModule ModuleInst, string ProjectPath, string DevTeamID) { if (IgorAssert.EnsureTrue(ModuleInst, Directory.Exists(ProjectPath), "XCodeProj doesn't exist at path " + ProjectPath)) { XCProject CurrentProject = new XCProject(ProjectPath); CurrentProject.Backup(); string ProjectGUID = CurrentProject.project.guid; object ProjectSectionObj = CurrentProject.GetObject(ProjectGUID); if (IgorAssert.EnsureTrue(ModuleInst, ProjectSectionObj != null, "Can't find Project Section in XCodeProj.")) { PBXDictionary ProjectSection = (PBXDictionary)ProjectSectionObj; object AttributesSectionObj = ProjectSection["attributes"]; if (IgorAssert.EnsureTrue(ModuleInst, AttributesSectionObj != null, "Can't find Attributes Section in Project Section.")) { object TargetAttributesObj = ((PBXDictionary)AttributesSectionObj)["TargetAttributes"]; if (IgorAssert.EnsureTrue(ModuleInst, TargetAttributesObj != null, "Can't find TargetAttributes Section in Attributes Section.")) { PBXDictionary TargetAttributes = (PBXDictionary)TargetAttributesObj; object TargetsObj = ProjectSection["targets"]; if (IgorAssert.EnsureTrue(ModuleInst, TargetsObj != null, "Can't find Targets Section in Project Section.")) { PBXList TargetsList = ((PBXList)TargetsObj); if (IgorAssert.EnsureTrue(ModuleInst, TargetsList.Count > 0, "No build targets defined in XCodeProj.")) { string PrimaryBuildTargetGUID = (string)(TargetsList[0]); PBXDictionary PrimaryBuildTargetToDevTeam = new PBXDictionary(); PBXDictionary DevTeamIDDictionary = new PBXDictionary(); DevTeamIDDictionary.Add("DevelopmentTeam", DevTeamID); PrimaryBuildTargetToDevTeam.Add(PrimaryBuildTargetGUID, DevTeamIDDictionary); if (TargetAttributes.ContainsKey(PrimaryBuildTargetGUID)) { object ExistingPrimaryBuildTargetObj = TargetAttributes[PrimaryBuildTargetGUID]; if (ExistingPrimaryBuildTargetObj != null) { PBXDictionary ExistingPrimaryBuildTarget = (PBXDictionary)ExistingPrimaryBuildTargetObj; if (!ExistingPrimaryBuildTarget.ContainsKey("DevelopmentTeam")) { ExistingPrimaryBuildTarget.Append(DevTeamIDDictionary); IgorDebug.Log(ModuleInst, "Added Development Team to XCodeProj."); } else { IgorDebug.Log(ModuleInst, "Development Team already set up in XCodeProj."); } } else { IgorDebug.LogError(ModuleInst, "Primary build target already has a key in TargetAttributes, but the value stored is invalid."); } } else { TargetAttributes.Append(PrimaryBuildTargetToDevTeam); IgorDebug.Log(ModuleInst, "Added Development Team to XCodeProj."); } CurrentProject.Save(); } } } } } } }