public static BuildResult GenerateXibDesignCode(CodeBehindWriter writer, MonobjcProject project, IEnumerable<ProjectFile> files) { BuildResult result = null; // Filter out xib files foreach(ProjectFile file in files.Where (BuildUtils.IsXIBFile)) { ProjectFile designerFile = GetDesignerFile (file); try { // Only generate if needed if (designerFile != null && IsMoreRecent (file, designerFile)) { GenerateXibDesignCode(writer, file, designerFile); } } catch (Exception ex) { if (result == null) { result = new BuildResult(); } // Collect errors result.AddError(file.FilePath, 0, 0, null, ex.Message); LoggingService.LogError (String.Format (CultureInfo.CurrentUICulture, "Cannot generate design code for xib file {0}", file.FilePath), ex); } } return result; }
public DeveloperToolsDesktopApplication(MonobjcProject project) : base(Constants.DEVELOPER_TOOLS, Constants.APPLICATION_TITLE, true) { this.project = project; }
private static String GetArguments(MonobjcProject project, String file) { Version version = DeveloperToolsVersion; if (version == null) { return null; } StringBuilder arguments = new StringBuilder(); arguments.Append("-a "); switch (version.Major) { case 3: { String path = Path.Combine(DeveloperToolsFolder, Constants.INTERFACE_BUILDER_APPLICATION); arguments.AppendFormat("\"{0}\" \"{1}\"", path, file); break; } default: { String path = Path.Combine(DeveloperToolsFolder, Constants.XCODE_APPLICATION); arguments.AppendFormat("\"{0}\" \"{1}\"", path, project.XcodeProjectFolder); break; } } return arguments.ToString(); }
public static IEnumerable<FilePair> GetReferencesFilePairs(MonobjcProject proj, ConfigurationSelector configuration) { var conf = (MonobjcProjectConfiguration)proj.GetConfiguration(configuration); foreach (var pair in GetReferenceFilePairsForProject(proj, configuration, conf)) { yield return pair; } }
public static void CopyContentFiles(MonobjcProject proj, IProgressMonitor monitor, BuildData buildData, BuildResult result) { var cfg = (MonobjcProjectConfiguration)buildData.Configuration; string resDir = ((MonobjcProjectConfiguration)buildData.Configuration).ResourcesDirectory; // Copy 'content' files into 'Resources' directory var contentFiles = BuildUtils.GetContentFilePairs(buildData.Items.OfType<ProjectFile>(), resDir) .Where(f => f.NeedsBuilding()) .ToList(); if (!proj.BundleIcon.IsNullOrEmpty) { FilePair icon = new FilePair(proj.BundleIcon, cfg.ResourcesDirectory.Combine(proj.BundleIcon.FileName)); if (!File.Exists(proj.BundleIcon)) { result.AddError(null, 0, 0, null, String.Format("Application icon '{0}' is missing.", proj.BundleIcon)); return; } else { contentFiles.Add(icon); } } if (contentFiles.Count > 0) { monitor.BeginTask(GettextCatalog.GetString("Copying content files"), contentFiles.Count); foreach (var file in contentFiles) { file.EnsureOutputDirectory(); monitor.Log.WriteLine(GettextCatalog.GetString("Copying '{0}' to '{1}'", file.Input, file.Output)); File.Copy(file.Input, file.Output, true); monitor.Step(1); } monitor.EndTask(); } }