public IBuilder Create(IEnumerable <Project> projects) { var builders = new List <IBuilder>(); var prjs = projects.ToList(); foreach (var project in prjs) { foreach (var sourceSet in project.SourceSets) { if (buildScriptMappings.HasBuildScriptFor(sourceSet)) { var buildScript = buildScriptMappings.GetBuildScriptFor(sourceSet); builders.Add(builderFactory.CreatePythnoScriptedBuilder(project, buildScript)); } } } return(coreBuilderFactory.Merge(builders.ToArray(), new ProjectBuilderTag(String.Format("Python scripted builders of {0}", String.Join(", ", prjs.Select(p => p.Name))), prjs))); }
/// <summary> /// Adds the builders (<see cref="IBuilder"/>) to the given build context which process /// the given set of projects (<see cref="Project"/>) /// </summary> /// <param name="context">Current build context</param> /// <param name="projects">Projects to be built</param> public IBuilder AddToContext(IBuildContext context, IEnumerable <Project> projects) { var builders = new List <IBuilder>(); foreach (var project in projects) { foreach (var sourceSet in project.SourceSets) { if (buildScriptMappings.HasBuildScriptFor(sourceSet)) { var buildScript = buildScriptMappings.GetBuildScriptFor(sourceSet); builders.Add(new PythonScriptedBuilder(project, buildScript, fingerprintFactory, scriptRunner)); } } } var merged = builders.ToArray().Merge(); if (merged != null) { merged.AddToContext(context); } return(merged); }