use of org.gradle.api.file.SourceDirectorySet in project curiostack by curioswitch.
the class ProtobufPlugin method configureSourceSet.
private static SourceSetTasks configureSourceSet(String sourceSetName, Project project, ProtobufExtension extension) {
NamedDomainObjectProvider<SourceDirectorySet> sources = extension.getSources().register(sourceSetName);
Configuration protobufConfiguration = project.getConfigurations().create(SourceSetUtils.getConfigName(sourceSetName, "protobuf"), c -> {
c.setVisible(false);
c.setTransitive(true);
c.setExtendsFrom(ImmutableList.of());
});
TaskProvider<ExtractProtosTask> extract = project.getTasks().register("extract" + SourceSetUtils.getTaskSuffix(sourceSetName) + "Proto", ExtractProtosTask.class, t -> {
t.getFiles().from(protobufConfiguration);
t.setDestDir(project.file("build/extracted-protos/" + sourceSetName));
});
TaskProvider<ExtractProtosTask> extractInclude = project.getTasks().register("extractInclude" + SourceSetUtils.getTaskSuffix(sourceSetName) + "Proto", ExtractProtosTask.class, t -> t.setDestDir(project.file("build/extracted-include-protos/" + sourceSetName)));
TaskProvider<GenerateProtoTask> generateProto = project.getTasks().register("generate" + SourceSetUtils.getTaskSuffix(sourceSetName) + "Proto", GenerateProtoTask.class, sourceSetName, extension);
// To ensure languages are added in order, we have to make sure this is hooked up eagerly.
var languages = project.getObjects().listProperty(LanguageSettings.class).empty();
extension.getLanguages().all(languages::add);
generateProto.configure(t -> {
t.dependsOn(extract, extractInclude);
t.getSources().source(sources.get()).srcDir(extract.get().getDestDir());
t.include(extractInclude.get().getDestDir());
t.setLanguages(languages);
});
return ImmutableSourceSetTasks.builder().extractProtos(extract).extractIncludeProtos(extractInclude).generateProto(generateProto).build();
}
use of org.gradle.api.file.SourceDirectorySet in project gradle by gradle.
the class ScalaBasePlugin method configureSourceSetDefaults.
private static void configureSourceSetDefaults(final Project project, final SourceDirectorySetFactory sourceDirectorySetFactory) {
final JavaBasePlugin javaPlugin = project.getPlugins().getPlugin(JavaBasePlugin.class);
project.getConvention().getPlugin(JavaPluginConvention.class).getSourceSets().all(new Action<SourceSet>() {
@Override
public void execute(final SourceSet sourceSet) {
String displayName = (String) InvokerHelper.invokeMethod(sourceSet, "getDisplayName", null);
Convention sourceSetConvention = (Convention) InvokerHelper.getProperty(sourceSet, "convention");
DefaultScalaSourceSet scalaSourceSet = new DefaultScalaSourceSet(displayName, sourceDirectorySetFactory);
sourceSetConvention.getPlugins().put("scala", scalaSourceSet);
final SourceDirectorySet scalaDirectorySet = scalaSourceSet.getScala();
scalaDirectorySet.srcDir(new Callable<File>() {
@Override
public File call() throws Exception {
return project.file("src/" + sourceSet.getName() + "/scala");
}
});
sourceSet.getAllJava().source(scalaDirectorySet);
sourceSet.getAllSource().source(scalaDirectorySet);
sourceSet.getResources().getFilter().exclude(new Spec<FileTreeElement>() {
@Override
public boolean isSatisfiedBy(FileTreeElement element) {
return scalaDirectorySet.contains(element.getFile());
}
});
configureScalaCompile(project, javaPlugin, sourceSet);
}
});
}
use of org.gradle.api.file.SourceDirectorySet in project spring-boot by spring-projects.
the class BootRun method sourceResources.
/**
* Adds the {@link SourceDirectorySet#getSrcDirs() source directories} of the given
* {@code sourceSet's} {@link SourceSet#getResources() resources} to the start of the
* classpath in place of the {@link SourceSet#getOutput output's}
* {@link SourceSetOutput#getResourcesDir() resources directory}.
* @param sourceSet the source set
*/
public void sourceResources(SourceSet sourceSet) {
File resourcesDir = sourceSet.getOutput().getResourcesDir();
Set<File> srcDirs = sourceSet.getResources().getSrcDirs();
setClasspath(getProject().files(srcDirs, getClasspath()).filter((file) -> !file.equals(resourcesDir)));
}
use of org.gradle.api.file.SourceDirectorySet in project gradle by gradle.
the class GroovyPlugin method configureGroovydoc.
private void configureGroovydoc(final Project project) {
project.getTasks().register(GROOVYDOC_TASK_NAME, Groovydoc.class, groovyDoc -> {
groovyDoc.setDescription("Generates Groovydoc API documentation for the main source code.");
groovyDoc.setGroup(JavaBasePlugin.DOCUMENTATION_GROUP);
SourceSet sourceSet = project.getExtensions().getByType(JavaPluginExtension.class).getSourceSets().getByName(SourceSet.MAIN_SOURCE_SET_NAME);
groovyDoc.setClasspath(sourceSet.getOutput().plus(sourceSet.getCompileClasspath()));
SourceDirectorySet groovySourceSet = sourceSet.getExtensions().getByType(GroovySourceDirectorySet.class);
groovyDoc.setSource(groovySourceSet);
});
}
use of org.gradle.api.file.SourceDirectorySet in project gradle by gradle.
the class CodeNarcPlugin method configureForSourceSet.
@Override
protected void configureForSourceSet(final SourceSet sourceSet, CodeNarc task) {
task.setDescription("Run CodeNarc analysis for " + sourceSet.getName() + " classes");
SourceDirectorySet groovySourceSet = sourceSet.getExtensions().getByType(GroovySourceDirectorySet.class);
task.setSource(groovySourceSet.matching(filter -> filter.include("**/*.groovy")));
}
Aggregations