in src/main/java/software/amazon/smithy/gradle/tasks/SmithyBuildJar.java [225:246]
private void createSourceSets(Path output) throws IOException {
for (Path projection : getDirectories(output)) {
String projectionName = output.relativize(projection).toString();
// Add a source set for the entire projection.
String projectionSourceSetName = "smithy_" + projectionName;
getLogger().info("Creating Smithy projection source set: {}", projectionSourceSetName);
SmithyUtils.getSourceSets(getProject()).create(projectionSourceSetName, sourceSet -> {
sourceSet.resources(sds -> sds.srcDir(projection.toFile()));
});
// Add a source set for each plugin in the projection.
for (Path plugin : getDirectories(projection)) {
String pluginName = projection.relativize(plugin).toString();
String pluginSourceSetName = projectionSourceSetName + "_" + pluginName;
getLogger().info("Creating Smithy plugin source set: {}", pluginSourceSetName);
SmithyUtils.getSourceSets(getProject()).create(pluginSourceSetName, sourceSet -> {
sourceSet.resources(sds -> sds.srcDir(plugin.toFile()));
});
}
}
}