diff options
Diffstat (limited to 'src/main/java/net/fabricmc/loom/build/mixin/ScalaApInvoker.java')
-rw-r--r-- | src/main/java/net/fabricmc/loom/build/mixin/ScalaApInvoker.java | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/src/main/java/net/fabricmc/loom/build/mixin/ScalaApInvoker.java b/src/main/java/net/fabricmc/loom/build/mixin/ScalaApInvoker.java index bc77e152..7a3238b7 100644 --- a/src/main/java/net/fabricmc/loom/build/mixin/ScalaApInvoker.java +++ b/src/main/java/net/fabricmc/loom/build/mixin/ScalaApInvoker.java @@ -25,17 +25,31 @@ package net.fabricmc.loom.build.mixin; import java.io.File; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; import com.google.common.collect.ImmutableList; import org.gradle.api.Project; +import org.gradle.api.tasks.SourceSet; import org.gradle.api.tasks.scala.ScalaCompile; +import net.fabricmc.loom.LoomGradleExtension; +import net.fabricmc.loom.extension.MixinApExtension; + public class ScalaApInvoker extends AnnotationProcessorInvoker<ScalaCompile> { public ScalaApInvoker(Project project) { - super(project, - // Scala just uses the java AP configuration afaik. This of course assumes the java AP also gets configured. - ImmutableList.of(), - project.getTasks().withType(ScalaCompile.class)); + super( + project, + // Scala just uses the java AP configuration afaik. This of course assumes the java AP also gets configured. + ImmutableList.of(), + getInvokerTasks(project)); + } + + private static Map<SourceSet, ScalaCompile> getInvokerTasks(Project project) { + MixinApExtension mixin = LoomGradleExtension.get(project).getMixinApExtension(); + return mixin.getInvokerTasksStream(AnnotationProcessorInvoker.SCALA) + .collect(Collectors.toMap(Map.Entry::getKey, entry -> Objects.requireNonNull((ScalaCompile) entry.getValue()))); } @Override @@ -44,7 +58,7 @@ public class ScalaApInvoker extends AnnotationProcessorInvoker<ScalaCompile> { } @Override - protected File getDestinationDir(ScalaCompile task) { + protected File getRefmapDestinationDir(ScalaCompile task) { return task.getDestinationDir(); } } |