aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorJuuxel <6596629+Juuxel@users.noreply.github.com>2020-12-02 21:30:27 +0200
committerJuuxel <6596629+Juuxel@users.noreply.github.com>2020-12-02 21:30:27 +0200
commit5a8cd5ce9ff8e680c91d4f23f461659859171e08 (patch)
tree7f0245984c3329ca060060c44d5f8e46c84ff94a /src/main
parentfe99918d360e7f4796c5c1c85c9109be2dd7e805 (diff)
downloadarchitectury-loom-5a8cd5ce9ff8e680c91d4f23f461659859171e08.tar.gz
architectury-loom-5a8cd5ce9ff8e680c91d4f23f461659859171e08.tar.bz2
architectury-loom-5a8cd5ce9ff8e680c91d4f23f461659859171e08.zip
Switch to TR (once again) for remapping srg -> official
It works now :^)
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/net/fabricmc/loom/providers/MinecraftMappedProvider.java1
-rw-r--r--src/main/java/net/fabricmc/loom/providers/MinecraftPatchedProvider.java64
2 files changed, 33 insertions, 32 deletions
diff --git a/src/main/java/net/fabricmc/loom/providers/MinecraftMappedProvider.java b/src/main/java/net/fabricmc/loom/providers/MinecraftMappedProvider.java
index ac3099cf..aa590205 100644
--- a/src/main/java/net/fabricmc/loom/providers/MinecraftMappedProvider.java
+++ b/src/main/java/net/fabricmc/loom/providers/MinecraftMappedProvider.java
@@ -148,7 +148,6 @@ public class MinecraftMappedProvider extends DependencyProvider {
// TODO: Relocate this to its own class
try (FileSystem fs = FileSystems.newFileSystem(URI.create("jar:" + output.toUri()), ImmutableMap.of("create", false))) {
Path manifestPath = fs.getPath("META-INF", "MANIFEST.MF");
- ForgeProvider.ForgeVersion version = getExtension().getForgeProvider().getVersion();
Manifest minecraftManifest;
Manifest forgeManifest;
diff --git a/src/main/java/net/fabricmc/loom/providers/MinecraftPatchedProvider.java b/src/main/java/net/fabricmc/loom/providers/MinecraftPatchedProvider.java
index dc394415..583c662e 100644
--- a/src/main/java/net/fabricmc/loom/providers/MinecraftPatchedProvider.java
+++ b/src/main/java/net/fabricmc/loom/providers/MinecraftPatchedProvider.java
@@ -25,10 +25,8 @@
package net.fabricmc.loom.providers;
import java.io.File;
-import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
-import java.io.Reader;
import java.io.UncheckedIOException;
import java.net.URI;
import java.net.URISyntaxException;
@@ -40,7 +38,6 @@ import java.util.Collections;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
-import java.util.function.UnaryOperator;
import com.google.common.collect.ImmutableMap;
import com.google.common.io.Files;
@@ -49,19 +46,16 @@ import net.minecraftforge.binarypatcher.ConsoleTool;
import net.minecraftforge.gradle.mcp.util.MCPRuntime;
import net.minecraftforge.gradle.mcp.util.MCPWrapper;
import org.apache.commons.io.FileUtils;
-import org.cadixdev.atlas.Atlas;
-import org.cadixdev.bombe.asm.jar.JarEntryRemappingTransformer;
-import org.cadixdev.lorenz.MappingSet;
-import org.cadixdev.lorenz.asm.LorenzRemapper;
-import org.cadixdev.lorenz.io.srg.tsrg.TSrgReader;
import org.gradle.api.Project;
import org.gradle.api.logging.Logger;
import net.fabricmc.loom.util.Constants;
import net.fabricmc.loom.util.DependencyProvider;
import net.fabricmc.loom.util.JarUtil;
+import net.fabricmc.loom.util.TinyRemapperMappingsHelper;
import net.fabricmc.loom.util.function.FsPathConsumer;
-import net.fabricmc.loom.util.function.IoConsumer;
+import net.fabricmc.tinyremapper.OutputConsumerPath;
+import net.fabricmc.tinyremapper.TinyRemapper;
public class MinecraftPatchedProvider extends DependencyProvider {
private File minecraftClientSrgJar;
@@ -115,6 +109,7 @@ public class MinecraftPatchedProvider extends DependencyProvider {
}
private void createSrgJars(Logger logger) throws Exception {
+ // TODO: FORGE: Get rid of *this*
logger.lifecycle(":remapping minecraft (MCP, official -> srg)");
McpConfigProvider volde = getExtension().getMcpConfigProvider();
@@ -169,29 +164,36 @@ public class MinecraftPatchedProvider extends DependencyProvider {
}
private void remapPatchedJars(Logger logger) throws IOException {
- logger.lifecycle(":remapping minecraft (Atlas, srg -> official)");
-
- useAtlas(MappingSet::reverse, atlas -> {
- atlas.run(minecraftClientPatchedSrgJar.toPath(), minecraftClientPatchedJar.toPath());
- atlas.run(minecraftServerPatchedSrgJar.toPath(), minecraftServerPatchedJar.toPath());
- });
- }
-
- private void useAtlas(UnaryOperator<MappingSet> mappingOp, IoConsumer<Atlas> action) throws IOException {
- try (Reader mappingReader = new FileReader(getExtension().getMcpConfigProvider().getSrg());
- TSrgReader reader = new TSrgReader(mappingReader);
- Atlas atlas = new Atlas()) {
- MappingSet mappings = mappingOp.apply(reader.read());
-
- atlas.install(ctx -> new JarEntryRemappingTransformer(
- new LorenzRemapper(mappings, ctx.inheritanceProvider())
- ));
-
- for (File library : getExtension().getMinecraftProvider().getLibraryProvider().getLibraries()) {
- atlas.use(library.toPath());
+ boolean[] bools = { true, false };
+ Path[] libraries = getExtension()
+ .getMinecraftProvider()
+ .getLibraryProvider()
+ .getLibraries()
+ .stream()
+ .map(File::toPath)
+ .toArray(Path[]::new);
+
+ for (boolean isClient : bools) {
+ logger.lifecycle(":remapping minecraft (TinyRemapper, " + (isClient ? "client" : "server") + ", srg -> official)");
+
+ TinyRemapper remapper = TinyRemapper.newRemapper()
+ .withMappings(TinyRemapperMappingsHelper.create(getExtension().getMappingsProvider().getMappingsWithSrg(), "srg", "official", true))
+ .renameInvalidLocals(true)
+ .rebuildSourceFilenames(true)
+ .build();
+
+ Path input = (isClient ? minecraftClientPatchedSrgJar : minecraftServerPatchedSrgJar).toPath();
+ Path output = (isClient ? minecraftClientPatchedJar : minecraftServerPatchedJar).toPath();
+
+ try (OutputConsumerPath outputConsumer = new OutputConsumerPath.Builder(output).build()) {
+ outputConsumer.addNonClassFiles(input);
+
+ remapper.readClassPath(libraries);
+ remapper.readInputs(input);
+ remapper.apply(outputConsumer);
+ } finally {
+ remapper.finish();
}
-
- action.accept(atlas);
}
}