aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/net/fabricmc/loom/providers/MappingsProvider.java17
-rw-r--r--src/main/java/net/fabricmc/loom/task/RemapJarTask.java17
-rw-r--r--src/main/java/net/fabricmc/loom/util/mixin/AnnotationProcessorInvoker.java3
3 files changed, 21 insertions, 16 deletions
diff --git a/src/main/java/net/fabricmc/loom/providers/MappingsProvider.java b/src/main/java/net/fabricmc/loom/providers/MappingsProvider.java
index d9cb7ab4..9c944595 100644
--- a/src/main/java/net/fabricmc/loom/providers/MappingsProvider.java
+++ b/src/main/java/net/fabricmc/loom/providers/MappingsProvider.java
@@ -34,6 +34,8 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
+import java.util.ArrayList;
+import java.util.List;
import java.util.function.Consumer;
import com.google.common.base.Preconditions;
@@ -80,6 +82,7 @@ public class MappingsProvider extends DependencyProvider {
public File tinyMappingsJar;
public File mappingsMixinExport;
public Path tinyMappingsWithSrg;
+ public File mixinTinyMappingsWithSrg; // FORGE: The mixin mappings have srg names in intermediary.
public MappingsProvider(Project project) {
super(project);
@@ -148,6 +151,7 @@ public class MappingsProvider extends DependencyProvider {
tinyMappings = mappingsDir.resolve(StringUtils.removeSuffix(mappingsJar.getName(), ".jar") + ".tiny").toFile();
tinyMappingsJar = new File(getExtension().getUserCache(), mappingsJar.getName().replace(".jar", "-" + jarClassifier + ".jar"));
tinyMappingsWithSrg = mappingsDir.resolve(StringUtils.removeSuffix(mappingsJar.getName(), ".jar") + "-srg.tiny");
+ mixinTinyMappingsWithSrg = mappingsDir.resolve(StringUtils.removeSuffix(mappingsJar.getName(), ".jar") + "-mixin-srg.tiny").toFile();
if (!tinyMappings.exists() || isRefreshDeps()) {
storeMappings(getProject(), minecraftProvider, mappingsJar.toPath());
@@ -157,8 +161,17 @@ public class MappingsProvider extends DependencyProvider {
ZipUtil.pack(new ZipEntrySource[] {new FileSource("mappings/mappings.tiny", tinyMappings)}, tinyMappingsJar);
}
- if (getExtension().isForge() && (Files.notExists(tinyMappingsWithSrg) || isRefreshDeps())) {
- SrgMerger.mergeSrg(getExtension().getMcpConfigProvider().getSrg().toPath(), tinyMappings.toPath(), tinyMappingsWithSrg, true);
+ if (getExtension().isForge()) {
+ if (Files.notExists(tinyMappingsWithSrg) || isRefreshDeps()) {
+ SrgMerger.mergeSrg(getExtension().getMcpConfigProvider().getSrg().toPath(), tinyMappings.toPath(), tinyMappingsWithSrg, true);
+ }
+
+ if (!mixinTinyMappingsWithSrg.exists() || isRefreshDeps()) {
+ List<String> lines = new ArrayList<>(Files.readAllLines(tinyMappingsWithSrg));
+ lines.set(0, lines.get(0).replace("intermediary", "yraidemretni").replace("srg", "intermediary"));
+ Files.deleteIfExists(mixinTinyMappingsWithSrg.toPath());
+ Files.write(mixinTinyMappingsWithSrg.toPath(), lines);
+ }
}
addDependency(tinyMappingsJar, Constants.Configurations.MAPPINGS_FINAL);
diff --git a/src/main/java/net/fabricmc/loom/task/RemapJarTask.java b/src/main/java/net/fabricmc/loom/task/RemapJarTask.java
index 6c2a988c..4792791f 100644
--- a/src/main/java/net/fabricmc/loom/task/RemapJarTask.java
+++ b/src/main/java/net/fabricmc/loom/task/RemapJarTask.java
@@ -109,14 +109,9 @@ public class RemapJarTask extends Jar {
remapperBuilder = remapperBuilder.withMappings(TinyRemapperMappingsHelper.create(extension.isForge() ? mappingsProvider.getMappingsWithSrg() : mappingsProvider.getMappings(), fromM, toM, false));
- // FIXME: The mixin map is named->intermediary, but I think we need named->srg?
for (File mixinMapFile : extension.getAllMixinMappings()) {
- if ("intermediary".equals(toM)) {
- if (mixinMapFile.exists()) {
- remapperBuilder = remapperBuilder.withMappings(TinyUtils.createTinyMappingProvider(mixinMapFile.toPath(), fromM, toM));
- }
- } else {
- project.getLogger().error("Mixins in Forge projects are currently not supported.");
+ if (mixinMapFile.exists()) {
+ remapperBuilder = remapperBuilder.withMappings(TinyUtils.createTinyMappingProvider(mixinMapFile.toPath(), fromM, "intermediary"));
}
}
@@ -205,12 +200,8 @@ public class RemapJarTask extends Jar {
}
for (File mixinMapFile : extension.getAllMixinMappings()) {
- if ("intermediary".equals(toM)) {
- if (mixinMapFile.exists()) {
- jarRemapper.addMappings(TinyUtils.createTinyMappingProvider(mixinMapFile.toPath(), fromM, toM));
- } else {
- project.getLogger().error("Mixins in Forge projects are currently not supported.");
- }
+ if (mixinMapFile.exists()) {
+ jarRemapper.addMappings(TinyUtils.createTinyMappingProvider(mixinMapFile.toPath(), fromM, "intermediary"));
}
}
diff --git a/src/main/java/net/fabricmc/loom/util/mixin/AnnotationProcessorInvoker.java b/src/main/java/net/fabricmc/loom/util/mixin/AnnotationProcessorInvoker.java
index 2d7934d7..8feba505 100644
--- a/src/main/java/net/fabricmc/loom/util/mixin/AnnotationProcessorInvoker.java
+++ b/src/main/java/net/fabricmc/loom/util/mixin/AnnotationProcessorInvoker.java
@@ -71,8 +71,9 @@ public abstract class AnnotationProcessorInvoker<T extends Task> {
private void passMixinArguments(T task) {
try {
LoomGradleExtension extension = project.getExtensions().getByType(LoomGradleExtension.class);
+ File inMapFile = extension.isForge() ? extension.getMappingsProvider().mixinTinyMappingsWithSrg : extension.getMappingsProvider().tinyMappings;
Map<String, String> args = new HashMap<String, String>() {{
- put(Constants.MixinArguments.IN_MAP_FILE_NAMED_INTERMEDIARY, extension.getMappingsProvider().tinyMappings.getCanonicalPath());
+ put(Constants.MixinArguments.IN_MAP_FILE_NAMED_INTERMEDIARY, inMapFile.getCanonicalPath());
put(Constants.MixinArguments.OUT_MAP_FILE_NAMED_INTERMEDIARY, extension.getNextMixinMappings().getCanonicalPath());
put(Constants.MixinArguments.OUT_REFMAP_FILE, getRefmapDestination(task, extension));
put(Constants.MixinArguments.DEFAULT_OBFUSCATION_ENV, "named:intermediary");