public void Build(XCodeBuildSettings settings) { var builder = new ProcessArgumentBuilder(); if (settings.Verbose) { builder.Append("-verbose"); } if (settings.CheckFirstLaunchStatus) { builder.Append("-checkFirstLaunchStatus"); } if (!string.IsNullOrEmpty(settings.Project)) { builder.Append(string.Format("-project \"{0}\"", settings.Project)); } if (!string.IsNullOrEmpty(settings.Target)) { builder.Append(string.Format("-target \"{0}\"", settings.Target)); } if (settings.AllTargets) { builder.Append("-alltargets"); } if (settings.Workspace != null) { builder.Append("-workspace " + GetQuotedAbsolute(settings.Workspace)); } if (!string.IsNullOrEmpty(settings.Scheme)) { builder.Append(string.Format("-scheme \"{0}\"", settings.Scheme)); } if (!string.IsNullOrEmpty(settings.Configuration)) { builder.Append(string.Format("-configuration \"{0}\"", settings.Configuration)); } if (settings.XcConfig != null) { builder.Append("-xcconfig " + GetQuotedAbsolute(settings.XcConfig)); } if (!string.IsNullOrEmpty(settings.Arch)) { builder.Append(string.Format("-arch \"{0}\"", settings.Arch)); } if (!string.IsNullOrEmpty(settings.Sdk)) { builder.Append(string.Format("-sdk \"{0}\"", settings.Sdk)); } if (!string.IsNullOrEmpty(settings.Toolchain)) { builder.Append(string.Format("-toolchain \"{0}\"", settings.Toolchain)); } if (settings.Destination != null && settings.Destination.Count > 0) { builder.Append("-destination " + string.Join(",", settings.Destination.Select(kvp => string.Format("{0}={1}", kvp.Key, kvp.Value)))); if (settings.DestinationTimeout.HasValue) { builder.Append("-destination-timeout " + settings.DestinationTimeout.Value); } } if (settings.ParallelizeTargets) { builder.Append("-parallelizeTargets"); } if (settings.Jobs.HasValue) { builder.Append("-jobs " + settings.Jobs.Value); } if (settings.DryRun) { builder.Append("-dry-run"); } if (settings.ResultBundlePath != null) { builder.Append("-resultBundlePath " + GetQuotedAbsolute(settings.ResultBundlePath)); } if (settings.DerivedDataPath != null) { builder.Append("-derivedDataPath " + GetQuotedAbsolute(settings.DerivedDataPath)); } if (settings.ArchivePath != null) { builder.Append("-archivePath " + GetQuotedAbsolute(settings.ArchivePath)); } if (settings.ExportArchive) { builder.Append("-exportArchive"); } if (settings.ExportFormat.HasValue) { builder.Append("-exportFormat " + settings.ExportFormat.Value.ToString().ToLowerInvariant()); } if (settings.ExportPath != null) { builder.Append("-exportPath " + GetQuotedAbsolute(settings.ExportPath)); } if (settings.ExportOptionsPlist != null) { builder.Append("-exportOptionsPlist " + GetQuotedAbsolute(settings.ExportOptionsPlist)); } if (!string.IsNullOrEmpty(settings.ExportProvisioningProfile)) { builder.Append("-exportProvisioningProfile " + settings.ExportProvisioningProfile); } if (!string.IsNullOrEmpty(settings.ExportSigningIdentity)) { builder.Append("-exportSigningIdentity " + settings.ExportSigningIdentity); } if (!string.IsNullOrEmpty(settings.ExportInstallerIdentity)) { builder.Append("-exportInstallerIdentity " + settings.ExportInstallerIdentity); } if (settings.ExportWithOriginalSigningIdentity) { builder.Append("-exportWithOriginalSigningIdentity"); } if (settings.SkipUnavailableActions) { builder.Append("-skipUnavailableActions"); } if (settings.ExportLocalizations) { builder.Append("-exportLocalizations"); } if (settings.LocalizationPath != null) { builder.Append("-localizationPath " + GetQuotedAbsolute(settings.LocalizationPath)); } if (!string.IsNullOrEmpty(settings.ExportLanguage)) { builder.Append("-exportLanguage " + settings.ExportLanguage); } if (settings.Archive) { builder.Append("archive"); } else { builder.Append("build"); } if (settings.Clean) { builder.Append("clean"); } Run(settings, builder, settings.ToolPath); }
public static void XCodeBuild(this ICakeContext context, XCodeBuildSettings settings) { var r = new XCodeBuildRunner(context.FileSystem, context.Environment, context.ProcessRunner, context.Tools); r.Build(settings); }