public WorkerChoicePopup(Rect parentRect, BuildConfig config, string[] allWorkers) { windowSize = parentRect.size; Choices = allWorkers.Except( config.WorkerBuildConfigurations.Select(w => w.WorkerType)).ToArray(); choiceRects = new Rect[Choices.Length]; windowSize.y = 22.0f * Choices.Length; }
public static List <BuildContext> GetBuildContexts(IEnumerable <string> wantedWorkerTypes, BuildEnvironment buildEnvironment, ScriptingImplementation?scriptImplementation = null, ICollection <BuildTarget> buildTargetFilter = null) { var spatialOsBuildConfiguration = BuildConfig.GetInstance(); var result = new List <BuildContext>(); foreach (var workerType in wantedWorkerTypes) { var environmentConfig = spatialOsBuildConfiguration.GetEnvironmentConfigForWorker(workerType, buildEnvironment); // Filter targets for CI var targetConfigs = environmentConfig.BuildTargets .Where(t => t.Enabled && (buildTargetFilter?.Contains(t.Target) ?? true)) .ToList(); // Which build targets are not supported by current install? var missingTargets = targetConfigs .Where(c => !BuildSupportChecker.CanBuildTarget(c.Target)) .ToList(); // Error on missing required build support if (missingTargets.Any(c => c.Required)) { var targetNames = string.Join(", ", missingTargets .Where(c => c.Required) .Select(c => c.Target.ToString())); throw new BuildFailedException( $"Build failed for {workerType}. Cannot build for required ({targetNames}) because build support is not installed in the Unity Editor."); } // Log builds we're skipping if (missingTargets.Count > 0) { var targetNames = string.Join(", ", missingTargets.Select(c => c.Target.ToString())); Debug.LogWarning( $"Skipping ({targetNames}) because build support is not installed in the Unity Editor and the build target is not marked as 'Required'."); } result.AddRange(targetConfigs.Select(targetConfig => new BuildContext { WorkerType = workerType, BuildEnvironment = buildEnvironment, ScriptingImplementation = scriptImplementation ?? PlayerSettings.GetScriptingBackend(BuildPipeline.GetBuildTargetGroup(targetConfig.Target)), BuildTargetConfig = targetConfig })); } return(result); }
public static List <BuildContext> GetBuildContexts(BuildConfig buildConfig, BuildContextSettings contextSettings) { var result = new List <BuildContext>(); foreach (var workerType in contextSettings.WantedWorkerTypes) { var environmentConfig = buildConfig.GetEnvironmentConfigForWorker(workerType, contextSettings.BuildEnvironment); if (environmentConfig == null) { continue; } IEnumerable <BuildTargetConfig> supportedTargets; try { supportedTargets = environmentConfig.GetSupportedTargets(contextSettings); } catch (BuildFailedException exception) { throw new BuildFailedException($"Build failed for {workerType}. {exception.Message}"); } result.AddRange(supportedTargets.Select(targetConfig => new BuildContext { WorkerType = workerType, BuildEnvironment = contextSettings.BuildEnvironment, ScriptingImplementation = contextSettings.ScriptImplementation ?? targetConfig.ScriptingImplementation, BuildTargetConfig = targetConfig, IOSSdkVersion = (targetConfig.Target == BuildTarget.iOS) ? contextSettings.IOSSdkVersion : null })); } return(result); }