diff options
author | shedaniel <daniel@shedaniel.me> | 2021-04-13 16:17:04 +0800 |
---|---|---|
committer | shedaniel <daniel@shedaniel.me> | 2021-04-13 16:17:04 +0800 |
commit | a0b84aaf17c0eb58705e2fc28bb91e4a82ea1b8f (patch) | |
tree | 71e0b10b2296d8dc14a842cd2ef68817ac9d08d7 /src/main/java/net/fabricmc/loom/util/SourceRemapper.java | |
parent | 4fe9b81e32fa03abe047675465b4bd86ea5fff42 (diff) | |
parent | 61f724c76ee9ed53d610eeab72b570c946f2668b (diff) | |
download | architectury-loom-a0b84aaf17c0eb58705e2fc28bb91e4a82ea1b8f.tar.gz architectury-loom-a0b84aaf17c0eb58705e2fc28bb91e4a82ea1b8f.tar.bz2 architectury-loom-a0b84aaf17c0eb58705e2fc28bb91e4a82ea1b8f.zip |
Merge branch 'dev/0.6-forge' into dev/0.7-forge
# Conflicts:
# src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java
# src/main/java/net/fabricmc/loom/task/RemapJarTask.java
# src/main/java/net/fabricmc/loom/task/RemapSourcesJarTask.java
# src/main/java/net/fabricmc/loom/util/SourceRemapper.java
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 dc6c7f58..f9573bf5 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, boolean reproducibleFileOrder, boolean preserveFileTimestamps) { - SourceRemapper sourceRemapper = new SourceRemapper(project, named); + public static void remapSources(Project project, File input, File output, String from, String to, boolean reproducibleFileOrder, boolean preserveFileTimestamps) { + SourceRemapper sourceRemapper = new SourceRemapper(project, from, to); sourceRemapper.scheduleRemapSources(input, output, reproducibleFileOrder, preserveFileTimestamps); sourceRemapper.remapAll(); } @@ -104,7 +115,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)) { @@ -165,19 +176,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(); |