private string FindConfigurationForSolution( IEnumerable <string> configurations, ProjectConfigurationType type, IReadOnlyDictionary <string, string> config) { var typeStr = type.ToString(); // Find in config. if (config != null && config.TryGetValue(typeStr, out var targetConfiguration)) { if (configurations.Contains(targetConfiguration)) { return(targetConfiguration); } } // Find according to default rule. configurations = configurations.Where(c => c.StartsWith(typeStr)); foreach (var configuration in configurations) { var version = VersionOfConfiguration(configuration); if (version != null && version.MajorEquals(ProjectVersion)) { return(configuration); } } return(configurations.FirstOrDefault()); }
private static Conditions CreateCondition(ProjectConfigurationType type, UnityVersion version) { return(new Conditions(new[] { new Condition(ConditionNames.Configuration, $"{type}-{version.ToString(true)}"), new Condition(ConditionNames.Platform, "AnyCPU") })); }
private static void SetupConfigurationGroupForUnity( XmlPropertyGroup group, ProjectConfigurationType type, bool forEditor, UnityVersion version) { var condition = CreateCondition(type, version); group.Condition = condition.ToString(); bool isDebug = type == ProjectConfigurationType.Debug; if (isDebug) { group.SetProperty("DebugSymbols", "true"); } group.SetProperty("DebugType", isDebug ? "full" : "pdbonly"); group.SetProperty("Optimize", (!isDebug).ToString().ToLower()); group.SetProperty("OutputPath", $@"bin\{condition[ConditionNames.Configuration]}"); group.SetProperty("DefineConstants", GetDefineConstantsForUnity(isDebug, forEditor, version)); group.SetProperty("ErrorReport", "prompt"); group.SetProperty("WarningLevel", "4"); }
private static void SetupReferenceGroupForUnity(XmlItemGroup group, ProjectConfigurationType type, bool forEditor, UnityVersion version, IEnumerable <AssemblyReference> references) { var condition = CreateCondition(type, version); group.Condition = condition.ToString(); foreach (var asmRef in references) { var env = UnityEnvironmentTypesConverter.FromStrings(asmRef.Environments); if (env == UnityEnvironmentTypes.Editor && !forEditor) { continue; } var path = asmRef.Path; var include = asmRef.Name ?? Path.GetFileNameWithoutExtension(path); var item = group.AddItem("Reference", include); item.AddMetadata("HintPath", path); } }
private static string GetOutputPath(VSProject project, ProjectConfigurationType type) => $@"Temp\{project.Name}_bin\{type}";
private static string GetIntermediateOutputPath(VSProject project, ProjectConfigurationType type) => $@"Temp\{project.Name}_obj\{type}";