public void QueueBuild(BuildSettings buildSettings, BuildPipelineResult buildPipelineResult) { if (m_PrepareQueueBuilds == null) { m_PrepareQueueBuilds = new List <QueuedBuild>(); } if (buildSettings == null) { throw new ArgumentNullException(nameof(buildSettings)); } var b = new QueuedBuild(); b.requiredActiveTarget = GetRequiredEditorTarget(buildSettings); b.buildSettingsGuid = AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(buildSettings)); if (m_QueueBuilds.Count > 0) { buildPipelineResult = BuildPipelineResult.Failure(buildSettings.GetBuildPipeline(), buildSettings, "Can't queue builds while executing build."); } // If the build failed in previous step, don't execute it if (buildPipelineResult != null && buildPipelineResult.Failed) { b.buildFinished = true; } else { b.buildFinished = false; } b.buildPipelineResult = buildPipelineResult != null?JsonSerialization.Serialize(buildPipelineResult) : string.Empty; m_PrepareQueueBuilds.Add(b); }
static bool CanBuildLiveLinkPlayer(BuildSettings buildSettings) { if (!buildSettings.CanBuild(out var _)) { return(false); } if (!buildSettings.TryGetComponent <ClassicBuildProfile>(out var profile) || profile.Target == BuildTarget.NoTarget) { return(false); } // if CanBuild is true we know this build settings has an IBuildProfileComponent and a pipeline on it. return(buildSettings.GetBuildPipeline().BuildSteps.Any(step => step.GetType() == typeof(BuildStepBuildClassicLiveLink))); }