diff options
author | shedaniel <daniel@shedaniel.me> | 2021-04-13 10:07:26 +0800 |
---|---|---|
committer | shedaniel <daniel@shedaniel.me> | 2021-04-13 16:05:26 +0800 |
commit | 635fd8a55df7d39ca2cfc3730cf6dc4cbcbd784c (patch) | |
tree | 9c7f7c15731ce5356c1b8d4b94904e02f059beb6 /src/main/java/net/fabricmc/loom/util/SourceRemapper.java | |
parent | f45f47b1b07435f1d8c151bcc5f368e7eaf13f08 (diff) | |
download | architectury-loom-635fd8a55df7d39ca2cfc3730cf6dc4cbcbd784c.tar.gz architectury-loom-635fd8a55df7d39ca2cfc3730cf6dc4cbcbd784c.tar.bz2 architectury-loom-635fd8a55df7d39ca2cfc3730cf6dc4cbcbd784c.zip |
Allow remapping to other namespaces
Diffstat (limited to 'src/main/java/net/fabricmc/loom/util/SourceRemapper.java')
-rw-r--r-- | src/main/java/net/fabricmc/loom/util/SourceRemapper.java | 45 |
1 files changed, 32 insertions, 13 deletions
diff --git a/src/main/java/net/fabricmc/loom/util/SourceRemapper.java b/src/main/java/net/fabricmc/loom/util/SourceRemapper.java index 0acc4693..c7217f12 100644 --- a/src/main/java/net/fabricmc/loom/util/SourceRemapper.java +++ b/src/main/java/net/fabricmc/loom/util/SourceRemapper.java @@ -52,18 +52,29 @@ import net.fabricmc.stitch.util.StitchUtil; public class SourceRemapper { private final Project project; - private final boolean toNamed; + private String from; + private String to; private final List<Consumer<ProgressLogger>> remapTasks = new ArrayList<>(); private Mercury mercury; - public SourceRemapper(Project project, boolean toNamed) { + public SourceRemapper(Project project, boolean named) { + this(project, named ? intermediary(project) : "named", !named ? intermediary(project) : "named"); + } + + public static String intermediary(Project project) { + LoomGradleExtension extension = project.getExtensions().getByType(LoomGradleExtension.class); + return extension.isForge() ? "srg" : "intermediary"; + } + + public SourceRemapper(Project project, String from, String to) { this.project = project; - this.toNamed = toNamed; + this.from = from; + this.to = to; } - public static void remapSources(Project project, File input, File output, boolean named) throws Exception { - SourceRemapper sourceRemapper = new SourceRemapper(project, named); + public static void remapSources(Project project, File input, File output, String from, String to) throws Exception { + SourceRemapper sourceRemapper = new SourceRemapper(project, from, to); sourceRemapper.scheduleRemapSources(input, output, false, true); sourceRemapper.remapAll(); } @@ -109,7 +120,7 @@ public class SourceRemapper { } private void remapSourcesInner(File source, File destination) throws Exception { - project.getLogger().info(":remapping source jar"); + project.getLogger().info(":remapping source jar " + source.getName() + " from " + from + " to " + to); Mercury mercury = getMercuryInstance(); if (source.equals(destination)) { @@ -170,19 +181,27 @@ public class SourceRemapper { LoomGradleExtension extension = project.getExtensions().getByType(LoomGradleExtension.class); MappingsProvider mappingsProvider = extension.getMappingsProvider(); - MappingSet mappings = extension.getOrCreateSrcMappingCache(toNamed ? 1 : 0, () -> { + String intermediary = extension.isForge() ? "srg" : "intermediary"; + int id = -1; + + if (from.equals(intermediary) && to.equals("named")) { + id = 1; + } else if (to.equals(intermediary) && from.equals("named")) { + id = 0; + } + + MappingSet mappings = extension.getOrCreateSrcMappingCache(id, () -> { try { - String intermediary = extension.isForge() ? "srg" : "intermediary"; - TinyTree m = extension.isForge() ? mappingsProvider.getMappingsWithSrg() : mappingsProvider.getMappings(); - project.getLogger().info(":loading " + (toNamed ? intermediary + " -> named" : "named -> " + intermediary) + " source mappings"); - return new TinyMappingsReader(m, toNamed ? intermediary : "named", toNamed ? "named" : intermediary).read(); + TinyTree m = extension.shouldGenerateSrgTiny() ? mappingsProvider.getMappingsWithSrg() : mappingsProvider.getMappings(); + project.getLogger().info(":loading " + from + " -> " + to + " source mappings"); + return new TinyMappingsReader(m, from, to).read(); } catch (Exception e) { throw new RuntimeException(e); } }); - Mercury mercury = extension.getOrCreateSrcMercuryCache(toNamed ? 1 : 0, () -> { - Mercury m = createMercuryWithClassPath(project, toNamed); + Mercury mercury = extension.getOrCreateSrcMercuryCache(id, () -> { + Mercury m = createMercuryWithClassPath(project, to.equals("named")); for (File file : extension.getUnmappedModCollection()) { Path path = file.toPath(); |