aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net/fabricmc/loom/util/SourceRemapper.java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-04-13 16:17:04 +0800
committershedaniel <daniel@shedaniel.me>2021-04-13 16:17:04 +0800
commita0b84aaf17c0eb58705e2fc28bb91e4a82ea1b8f (patch)
tree71e0b10b2296d8dc14a842cd2ef68817ac9d08d7 /src/main/java/net/fabricmc/loom/util/SourceRemapper.java
parent4fe9b81e32fa03abe047675465b4bd86ea5fff42 (diff)
parent61f724c76ee9ed53d610eeab72b570c946f2668b (diff)
downloadarchitectury-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.java45
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();