Exemplo n.º 1
0
        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);
        }