/// <summary> /// /// </summary> /// <param name="project"></param> /// <param name="modifier"></param> /// <param name="target"></param> /// <param name="type"></param> private static void WriteTarget(BSharpProject project, string modifier, string target, BSharpBuilderTargetType type) { switch (modifier) { case "n": project.Targets.Namespaces.AppendTarget(target, type); break; case "c": project.Targets.Classes.AppendTarget(target, type); break; case "p": project.Targets.Paths.AppendTarget(target, type); break; } }
private static IBSharpProject SingleFileProject(string resolvePath, IDictionary <string, string> adict, IUserLog log, BSharpBuilder builder) { var result = new BSharpProject { IsFullyQualifiedProject = true, Log = log }; result.RootDirectory = Path.GetDirectoryName(resolvePath); result.Targets.Paths[resolvePath] = BSharpBuilderTargetType.Include; if (adict.ContainsKey("cls")) { result.Targets.Classes[adict["cls"]] = BSharpBuilderTargetType.Include; } return(result); }
private static IBSharpProject SetupProject(IDictionary<string, string> adict, IUserLog log, BSharpBuilder builder) { var project = new BSharpProject {IsFullyQualifiedProject = true}; project.IsFullyQualifiedProject = true; if (adict.ContainsKey("project")) { project.ProjectName = adict["project"]; project.IsFullyQualifiedProject = false; }else if (adict.ContainsKey("arg1")) { project.ProjectName = adict["arg1"]; project.IsFullyQualifiedProject = false; } if (!project.OutputAttributes.HasFlag(BSharpBuilderOutputAttributes.IncludeWork)) { if (!adict.ContainsKey("noIncludeWork")) { project.OutputAttributes |= BSharpBuilderOutputAttributes.IncludeWork; } } if (adict.ContainsKey("out-layout")) { project.OutputAttributes = adict["out-layout"].To<BSharpBuilderOutputAttributes>(); } if (adict.ContainsKey("out")) { project.MainOutputDirectory = adict["out"]; } if (adict.ContainsKey("log")) { project.LogOutputDirectory = adict["log"]; } if (adict.ContainsKey("extension")) { project.OutputExtension = adict["extension"]; } if (adict.ContainsKey("root")) { project.RootDirectory = adict["root"]; } if (adict.ContainsKey("dot")) { project.GenerateGraph = adict["dot"].ToBool(); } if (adict.ContainsKey("include")) { project.Targets.Paths.RemoveTarget("*"); var parsed = ParseKeyValueEnumeration(adict["include"], ',', ':'); foreach (var el in parsed) { Console.WriteLine("Include: <" +el.Key+ "," + el.Value+">"); WriteTarget(project, el.Key, el.Value, BSharpBuilderTargetType.Include); } } if (adict.ContainsKey("exclude")) { var parsed = ParseKeyValueEnumeration(adict["exclude"], ',', ':'); foreach (var el in parsed) { Console.WriteLine("Exclude: <" + el.Key + "," + el.Value + ">"); WriteTarget(project, el.Key, el.Value, BSharpBuilderTargetType.Exclude); } } project.Log = log; foreach (var c in adict) { if (c.Key.StartsWith("set-")) { project.Conditions[c.Key.Substring(4)] = c.Value; log.Info("set option " + c.Key.Substring(4) + " = " + c.Value); } } log.Info("root dir = " + project.GetRootDirectory()); log.Info("out dir = " + project.GetOutputDirectory()); log.Info("log dir = " + project.GetLogDirectory()); return project; }
private static IBSharpProject SetupProject(IDictionary <string, string> adict, IUserLog log, BSharpBuilder builder) { var project = new BSharpProject { IsFullyQualifiedProject = true }; project.IsFullyQualifiedProject = true; var filename = adict.resolvestr("arg1"); if (!string.IsNullOrWhiteSpace(filename) && filename.Contains(".")) { //direct file log.Info("Single file compiled"); project = (BSharpProject)SingleFileProject(EnvironmentInfo.ResolvePath(filename), adict, log, builder); } else { if (adict.ContainsKey("project")) { project.ProjectName = adict["project"]; project.IsFullyQualifiedProject = false; } else if (adict.ContainsKey("arg1")) { project.ProjectName = adict["arg1"]; project.IsFullyQualifiedProject = false; } } if (!project.OutputAttributes.HasFlag(BSharpBuilderOutputAttributes.IncludeWork)) { if (!adict.ContainsKey("noIncludeWork")) { project.OutputAttributes |= BSharpBuilderOutputAttributes.IncludeWork; } } if (adict.ContainsKey("out-layout")) { project.OutputAttributes = adict["out-layout"].To <BSharpBuilderOutputAttributes>(); } if (adict.ContainsKey("compile-extensions")) { project.DoCompileExtensions = adict["compile-extensions"].ToBool(); } if (adict.ContainsKey("out")) { project.MainOutputDirectory = adict["out"]; } if (adict.ContainsKey("log")) { project.LogOutputDirectory = adict["log"]; } if (adict.ContainsKey("extension")) { project.OutputExtension = adict["extension"]; } if (adict.ContainsKey("root")) { project.RootDirectory = adict["root"]; } if (adict.ContainsKey("dot")) { project.GenerateGraph = adict["dot"].ToBool(); } if (adict.ContainsKey("include")) { project.Targets.Paths.RemoveTarget("*"); var parsed = ParseKeyValueEnumeration(adict["include"], ',', ':'); foreach (var el in parsed) { Console.WriteLine("Include: <" + el.Key + "," + el.Value + ">"); WriteTarget(project, el.Key, el.Value, BSharpBuilderTargetType.Include); } } if (adict.ContainsKey("exclude")) { var parsed = ParseKeyValueEnumeration(adict["exclude"], ',', ':'); foreach (var el in parsed) { Console.WriteLine("Exclude: <" + el.Key + "," + el.Value + ">"); WriteTarget(project, el.Key, el.Value, BSharpBuilderTargetType.Exclude); } } project.Log = log; foreach (var c in adict) { if (c.Key.StartsWith("set-")) { project.Conditions[c.Key.Substring(4)] = c.Value; log.Info("set option " + c.Key.Substring(4) + " = " + c.Value); } } log.Info("root dir = " + project.GetRootDirectory()); log.Info("out dir = " + project.GetOutputDirectory()); log.Info("log dir = " + project.GetLogDirectory()); return(project); }