Exemple #1
0
        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);
        }
Exemple #2
0
        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)));
        }