/// <summary> /// Create a new instance of BuildEnvironmentConfig. /// </summary> /// <param name="availableTargets">All of the targets that can be built in this environment.</param> /// <param name="targets"> /// A list of configured targets. If a target is present in <paramref name="availableTargets" /> but /// is not in <paramref name="targets" />, then it will have the default settings the final list of build targets. /// </param> public BuildEnvironmentConfig(IEnumerable <BuildTarget> availableTargets, params BuildTargetConfig[] targets) { BuildTargets = new List <BuildTargetConfig>(); foreach (var available in availableTargets) { var overridden = targets.FirstOrDefault(t => t.Target == available); if (overridden.Target == available) { BuildTargets.Add(overridden); } else { BuildTargets.Add(new BuildTargetConfig(available) { Options = WorkerBuildData.BuildTargetDefaultOptions[available], Enabled = false, Required = false, Deprecated = BuildSupportChecker.IsDeprecatedTarget(available) }); } } }