aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net/fabricmc/loom/util/SourceRemapper.java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-04-13 10:07:26 +0800
committershedaniel <daniel@shedaniel.me>2021-04-13 16:05:26 +0800
commit635fd8a55df7d39ca2cfc3730cf6dc4cbcbd784c (patch)
tree9c7f7c15731ce5356c1b8d4b94904e02f059beb6 /src/main/java/net/fabricmc/loom/util/SourceRemapper.java
parentf45f47b1b07435f1d8c151bcc5f368e7eaf13f08 (diff)
downloadarchitectury-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.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 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();