private static IBuilder MergeSteps(IBuildContext context, List<IBuilder> additionalSteps, MSBuildRunner msbuild) { if (additionalSteps.Count > 0) { var merger = new MergingBuilder(additionalSteps.Concat(new[] {msbuild})); merger.AddToContext(context); return merger; } else { return msbuild; } }
private static IBuilder MergeSteps(IBuildContext context, List <IBuilder> additionalSteps, MSBuildRunner msbuild) { if (additionalSteps.Count > 0) { var merger = new MergingBuilder(additionalSteps.Concat(new[] { msbuild })); merger.AddToContext(context); return(merger); } else { return(msbuild); } }
private IBuilder RunPostProcessors(IBuildContext context, Project[] prjs, IBuilder input) { var modules = prjs.Select(p => p.Module).Distinct().ToList(); var postProcessableItems = prjs.Concat(modules.Cast <IPostProcessorsHolder>()).ToList(); var productName = analyzer.GetProductName(modules); if (productName != null) { postProcessableItems.Add(suite.GetProduct(productName)); } var factories = postProcessorFactories.ToList(); var resultBuilders = new List <IPostProcessor>(); foreach (var ppHolder in postProcessableItems) { foreach (var pp in ppHolder.PostProcessors) { var postProcessor = factories.Select(f => f.CreatePostProcessorFor(ppHolder, pp, new [] { input })).FirstOrDefault(p => p != null); if (postProcessor != null) { postProcessor.AddToContext(context); resultBuilders.Add(postProcessor); } } } if (resultBuilders.Count == 0) { return(input); } else { var merger = new MergingBuilder(resultBuilders.Concat(new[] { input })); merger.AddToContext(context); return(merger); } }
private IBuilder RunPostProcessors(IBuildContext context, Project[] prjs, IBuilder input) { var modules = prjs.Select(p => p.Module).Distinct().ToList(); var postProcessableItems = prjs.Concat(modules.Cast<IPostProcessorsHolder>()).ToList(); var productName = analyzer.GetProductName(modules); if (productName != null) postProcessableItems.Add(suite.GetProduct(productName)); var factories = postProcessorFactories.ToList(); var resultBuilders = new List<IPostProcessor>(); foreach (var ppHolder in postProcessableItems) { foreach (var pp in ppHolder.PostProcessors) { var postProcessor = factories.Select(f => f.CreatePostProcessorFor(ppHolder, pp, new [] { input })).FirstOrDefault(p => p != null); if (postProcessor != null) { postProcessor.AddToContext(context); resultBuilders.Add(postProcessor); } } } if (resultBuilders.Count == 0) { return input; } else { var merger = new MergingBuilder(resultBuilders.Concat(new[] {input})); merger.AddToContext(context); return merger; } }