diff --git a/build.gradle b/build.gradle index 4c4c585d..2a4875be 100644 --- a/build.gradle +++ b/build.gradle @@ -112,7 +112,7 @@ dependencies { implementation ('net.fabricmc:cfr:0.1.1') // source code remapping - implementation ('dev.architectury:mercury:0.1.1.11') + implementation ('dev.architectury:mercury:0.1.2.15') // Kotlin implementation('org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.4.2') { diff --git a/src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java b/src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java index 4add29d5..8ee3027f 100644 --- a/src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java +++ b/src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java @@ -103,7 +103,7 @@ public interface LoomGradleExtensionAPI { } default List getRuntimeRemapConfigurations() { - return getRemapConfigurations().stream().filter(element -> element.getOnCompileClasspath().get()).toList(); + return getRemapConfigurations().stream().filter(element -> element.getOnRuntimeClasspath().get()).toList(); } @ApiStatus.Experimental diff --git a/src/main/java/net/fabricmc/loom/build/mixin/AnnotationProcessorInvoker.java b/src/main/java/net/fabricmc/loom/build/mixin/AnnotationProcessorInvoker.java index 3dea4710..1bb0fbde 100644 --- a/src/main/java/net/fabricmc/loom/build/mixin/AnnotationProcessorInvoker.java +++ b/src/main/java/net/fabricmc/loom/build/mixin/AnnotationProcessorInvoker.java @@ -66,15 +66,17 @@ public abstract class AnnotationProcessorInvoker { protected final Project project; protected final MixinExtension mixinExtension; protected final Map invokerTasks; + private final String name; private final Collection apConfigurations; protected AnnotationProcessorInvoker(Project project, - Collection apConfigurations, - Map invokerTasks) { + Collection apConfigurations, + Map invokerTasks, String name) { this.project = project; this.mixinExtension = LoomGradleExtension.get(project).getMixin(); this.apConfigurations = apConfigurations; this.invokerTasks = invokerTasks; + this.name = name; } protected static Collection getApConfigurations(Project project, Function getApConfigNameFunc) { @@ -95,9 +97,14 @@ public abstract class AnnotationProcessorInvoker { LoomGradleExtension loom = LoomGradleExtension.get(project); String refmapName = Objects.requireNonNull(MixinExtension.getMixinInformationContainer(sourceSet)).refmapNameProvider().get(); Path mappings = loom.getMappingsProvider().getReplacedTarget(loom, loom.getMixin().getRefmapTargetNamespace().get()); + + final File mixinMappings = MixinMappingsService.getMixinMappingFile(project, sourceSet); + + task.getOutputs().file(mixinMappings).withPropertyName("mixin-ap-" + sourceSet.getName() + "-" + name).optional(); + Map args = new HashMap<>() {{ put(Constants.MixinArguments.IN_MAP_FILE_NAMED_INTERMEDIARY, mappings.toFile().getCanonicalPath()); - put(Constants.MixinArguments.OUT_MAP_FILE_NAMED_INTERMEDIARY, MixinMappingsService.getMixinMappingFile(project, sourceSet).getCanonicalPath()); + put(Constants.MixinArguments.OUT_MAP_FILE_NAMED_INTERMEDIARY, mixinMappings.getCanonicalPath()); put(Constants.MixinArguments.OUT_REFMAP_FILE, getRefmapDestination(task, refmapName)); put(Constants.MixinArguments.DEFAULT_OBFUSCATION_ENV, "named:" + IntermediaryNamespaces.replaceMixinIntermediaryNamespace(project, loom.getMixin().getRefmapTargetNamespace().get())); put(Constants.MixinArguments.QUIET, "true"); diff --git a/src/main/java/net/fabricmc/loom/build/mixin/GroovyApInvoker.java b/src/main/java/net/fabricmc/loom/build/mixin/GroovyApInvoker.java index 2f0d9623..ab85b465 100644 --- a/src/main/java/net/fabricmc/loom/build/mixin/GroovyApInvoker.java +++ b/src/main/java/net/fabricmc/loom/build/mixin/GroovyApInvoker.java @@ -42,7 +42,8 @@ public class GroovyApInvoker extends AnnotationProcessorInvoker { super( project, ImmutableList.of(), - getInvokerTasks(project)); + getInvokerTasks(project), + AnnotationProcessorInvoker.GROOVY); } private static Map getInvokerTasks(Project project) { diff --git a/src/main/java/net/fabricmc/loom/build/mixin/JavaApInvoker.java b/src/main/java/net/fabricmc/loom/build/mixin/JavaApInvoker.java index 00f3d980..5450009d 100644 --- a/src/main/java/net/fabricmc/loom/build/mixin/JavaApInvoker.java +++ b/src/main/java/net/fabricmc/loom/build/mixin/JavaApInvoker.java @@ -41,7 +41,8 @@ public class JavaApInvoker extends AnnotationProcessorInvoker { super( project, AnnotationProcessorInvoker.getApConfigurations(project, SourceSet::getAnnotationProcessorConfigurationName), - getInvokerTasks(project)); + getInvokerTasks(project), + AnnotationProcessorInvoker.JAVA); } private static Map getInvokerTasks(Project project) { diff --git a/src/main/java/net/fabricmc/loom/build/mixin/KaptApInvoker.java b/src/main/java/net/fabricmc/loom/build/mixin/KaptApInvoker.java index d17b34b7..f5ae7554 100644 --- a/src/main/java/net/fabricmc/loom/build/mixin/KaptApInvoker.java +++ b/src/main/java/net/fabricmc/loom/build/mixin/KaptApInvoker.java @@ -51,7 +51,8 @@ public class KaptApInvoker extends AnnotationProcessorInvoker { super( project, AnnotationProcessorInvoker.getApConfigurations(project, KaptApInvoker::getKaptConfigurationName), - getInvokerTasks(project)); + getInvokerTasks(project), + "Kotlin"); try { dummyRefmapDirectory = Files.createTempDirectory("temp_refmap").toFile(); 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 d361b837..81133208 100644 --- a/src/main/java/net/fabricmc/loom/build/mixin/ScalaApInvoker.java +++ b/src/main/java/net/fabricmc/loom/build/mixin/ScalaApInvoker.java @@ -43,7 +43,8 @@ public class ScalaApInvoker extends AnnotationProcessorInvoker { project, // Scala just uses the java AP configuration afaik. This of course assumes the java AP also gets configured. ImmutableList.of(), - getInvokerTasks(project)); + getInvokerTasks(project), + AnnotationProcessorInvoker.SCALA); } private static Map getInvokerTasks(Project project) { diff --git a/src/main/java/net/fabricmc/loom/util/Constants.java b/src/main/java/net/fabricmc/loom/util/Constants.java index b6f93620..b8d299ad 100644 --- a/src/main/java/net/fabricmc/loom/util/Constants.java +++ b/src/main/java/net/fabricmc/loom/util/Constants.java @@ -24,7 +24,6 @@ package net.fabricmc.loom.util; -import org.eclipse.jdt.core.JavaCore; import org.objectweb.asm.Opcodes; public class Constants { @@ -36,8 +35,7 @@ public class Constants { public static final String FABRIC_REPOSITORY = "https://maven.fabricmc.net/"; public static final int ASM_VERSION = Opcodes.ASM9; - public static final String MERCURY_SOURCE_VERSION = JavaCore.VERSION_15; - // TODO: once we update Mercury: public static final String MERCURY_SOURCE_VERSION = JavaCore.VERSION_17; + public static final String MERCURY_SOURCE_VERSION = "17"; private Constants() { }