private static void AnalyseReferences(AnalyzedProjectInfo project) { if (project.Info.IsLibrary()) { AnalyseLibraryReferences(project); } }
public HostGraphNode(AnalyzedProjectInfo projectInfo) { this.ProjectInfo = projectInfo; this.Type = projectInfo.Info.IsAddOn() ? HostGraphNodeType.AddOn : HostGraphNodeType.Library; this.Children = new List <HostGraphNode>(); this.Parents = new List <HostGraphNode>(); }
public AddOn(AnalyzedProjectInfo projectInfo) { this.name = projectInfo.Info.Name; this.codeFiles = new List <CodeFile>(); if (!projectInfo.RefersTo.Any(pi => pi.Info.ProjectType.Equals(ProjectType.CsLuaAddOn))) { this.codeFiles.Add(CsLuaMetaReader.GetMetaFile()); } var projectPath = projectInfo.Info.ProjectPath; foreach (var hostedProject in projectInfo.HostOf) { this.codeFiles.AddRange(LuaFileWriter.GetLuaFiles(hostedProject.Namespaces, hostedProject.Info.Name, false, hostedProject.Info.ProjectPath)); } var xmlFile = GetXmlCodeFile(projectPath, this.name); if (xmlFile != null) { this.codeFiles.Add(xmlFile); } this.codeFiles.AddRange(LuaFileWriter.GetLuaFiles(projectInfo.Namespaces, this.Name, false, projectPath)); this.resourceFiles = GetResourceFiles(projectPath); var tocBuilder = new TocBuilder(this.codeFiles, projectInfo.Info.CsLuaAddOnAttribute); this.tocFile = new CodeFile { FileName = this.name + ".toc", Content = tocBuilder.Build() }; }
private static void AnalyseLibraryReferences(AnalyzedProjectInfo project) { var nodes = new List <HostGraphNode>(); CreateHostGraph(project, nodes); RemoveAddOnsThatAreNotNearestHostCandidates(nodes); project.SetHosts(nodes.Where(FittingAddOnHost) .Select(hostNode => hostNode.ProjectInfo).ToList()); }
public IDeployableAddOn StructureAddOn(AnalyzedProjectInfo project) { switch (project.Info.ProjectType) { case ProjectType.CsLuaAddOn: return(new AddOn(project)); case ProjectType.LuaAddOn: return(new LuaAddOn(project.Info.Name, project.Info.ProjectPath)); default: return(null); } }
private static HostGraphNode CreateHostGraph(AnalyzedProjectInfo project, List <HostGraphNode> nodes) { var node = new HostGraphNode(project); nodes.Add(node); (project.Referenders ?? project.RequiredAddOns).ForEach(reqProj => { var reqNode = nodes.FirstOrDefault(n => n.ProjectInfo.Equals(reqProj)) ?? CreateHostGraph(reqProj, nodes); reqNode.Parents.Add(node); node.Children.Add(reqNode); }); return(node); }