CreateBuildActionEntry( System.Xml.XmlDocument doc, System.Xml.XmlElement buildActionEntriesEl, Target target, Bam.Core.Array <Target> buildActionsCreated) { #if true #else // add all required dependencies in first (order matters) foreach (var required in target.TargetDependencies) { this.CreateBuildActionEntry(doc, buildActionEntriesEl, required., buildActionsCreated); } #endif // the same target might appear again while iterating through the required targets of dependencies // only add it once (first one is important for ordering) if (buildActionsCreated.Contains(target)) { return; } var buildActionEntry = doc.CreateElement("BuildActionEntry"); buildActionEntriesEl.AppendChild(buildActionEntry); var buildableReference = doc.CreateElement("BuildableReference"); buildActionEntry.AppendChild(buildableReference); { buildableReference.SetAttribute("BuildableIdentifier", "primary"); buildableReference.SetAttribute("BlueprintIdentifier", target.GUID); if (null != target.getFileReference()) { buildableReference.SetAttribute("BuildableName", target.getFileReference().Name); } buildableReference.SetAttribute("BlueprintName", target.Name); if (target.Project.ProjectDir == this.Project.ProjectDir) { buildableReference.SetAttribute("ReferencedContainer", "container:" + System.IO.Path.GetFileName(this.Project.ProjectDir.ToString())); } else { var relative = this.Project.GetRelativePathToProject(target.Project.ProjectDir); buildableReference.SetAttribute("ReferencedContainer", "container:" + relative); } } buildActionsCreated.Add(target); }
CreateLaunchActions( System.Xml.XmlDocument doc, System.Xml.XmlElement schemeElement, Target target) { var launchActionEl = doc.CreateElement("LaunchAction"); schemeElement.AppendChild(launchActionEl); { launchActionEl.SetAttribute("selectedDebuggerIdentifier", "Xcode.DebuggerFoundation.Debugger.LLDB"); launchActionEl.SetAttribute("selectedLauncherIdentifier", "Xcode.DebuggerFoundation.Launcher.LLDB"); launchActionEl.SetAttribute("buildConfiguration", target.ConfigurationList.ElementAt(0).Name); var productRunnableEl = doc.CreateElement("BuildableProductRunnable"); launchActionEl.AppendChild(productRunnableEl); var buildableRefEl = doc.CreateElement("BuildableReference"); productRunnableEl.AppendChild(buildableRefEl); buildableRefEl.SetAttribute("BuildableIdentifier", "primary"); if (null != target.getFileReference()) { buildableRefEl.SetAttribute("BlueprintIdentifier", target.GUID); buildableRefEl.SetAttribute("BuildableName", target.getFileReference().Name); buildableRefEl.SetAttribute("BlueprintName", target.Name); } if (target.Project.ProjectDir == this.Project.ProjectDir) { buildableRefEl.SetAttribute("ReferencedContainer", "container:" + System.IO.Path.GetFileName(target.Project.ProjectDir.ToString())); } else { var relative = this.Project.GetRelativePathToProject(target.Project.ProjectDir); buildableRefEl.SetAttribute("ReferencedContainer", "container:" + relative); } var targetAsExe = target.Module as C.ConsoleApplication; if (targetAsExe != null && targetAsExe.WorkingDirectory != null) { launchActionEl.SetAttribute("useCustomWorkingDirectory", "YES"); targetAsExe.WorkingDirectory.Parse(); launchActionEl.SetAttribute("customWorkingDirectory", targetAsExe.WorkingDirectory.ToString()); } } }