mirror of
https://github.com/architectury/architectury-loom.git
synced 2026-03-28 04:07:01 -05:00
Use InstallerTools as external tool instead of library
This cuts down on Loom's direct compiletime dependencies.
This commit is contained in:
@@ -160,7 +160,6 @@ dependencies {
|
||||
compileOnly libs.kotlin.gradle.plugin
|
||||
|
||||
// Forge patches
|
||||
implementation libs.forge.installer.tools
|
||||
implementation libs.lorenz
|
||||
implementation libs.mcinjector
|
||||
implementation libs.opencsv
|
||||
|
||||
@@ -19,7 +19,6 @@ checkstyle = "10.26.1"
|
||||
codenarc = "3.6.0"
|
||||
|
||||
# Architectury libraries
|
||||
forge-installer-tools = "1.2.0"
|
||||
lorenz = "0.5.3"
|
||||
mcinjector = "3.8.0"
|
||||
opencsv = "5.4"
|
||||
@@ -54,7 +53,6 @@ kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", v
|
||||
kotlin-metadata = { module = "org.jetbrains.kotlin:kotlin-metadata-jvm", version.ref = "kotlin" }
|
||||
|
||||
# Architectury
|
||||
forge-installer-tools = { module = "net.minecraftforge:installertools", version.ref = "forge-installer-tools" }
|
||||
lorenz = { module = "org.cadixdev:lorenz", version.ref = "lorenz" }
|
||||
mcinjector = { module = "de.oceanlabs.mcp:mcinjector", version.ref = "mcinjector" }
|
||||
opencsv = { module = "com.opencsv:opencsv", version.ref = "opencsv" }
|
||||
|
||||
@@ -25,6 +25,7 @@ access-transformers-neo = "10.0.2"
|
||||
unprotect = "1.3.1"
|
||||
asm = "9.7"
|
||||
access-transformers-log4j = "2.17.1"
|
||||
forge-installer-tools = "1.2.0"
|
||||
|
||||
[libraries]
|
||||
# Decompilers
|
||||
@@ -55,3 +56,4 @@ access-transformers-neo = { module = "net.neoforged.accesstransformers:at-cli",
|
||||
unprotect = { module = "io.github.juuxel:unprotect", version.ref = "unprotect" }
|
||||
asm = { module = "org.ow2.asm:asm", version.ref = "asm" }
|
||||
access-transformers-log4j-bom = { module = "org.apache.logging.log4j:log4j-bom", version.ref = "access-transformers-log4j" }
|
||||
forge-installer-tools = { module = "net.minecraftforge:installertools", version.ref = "forge-installer-tools" }
|
||||
|
||||
@@ -27,17 +27,16 @@ package dev.architectury.loom.forge.dependency;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintStream;
|
||||
import java.io.UncheckedIOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import dev.architectury.loom.util.NullOutputStream;
|
||||
import dev.architectury.loom.forge.tool.ForgeToolValueSource;
|
||||
import dev.architectury.loom.util.DependencyDownloader;
|
||||
import dev.architectury.loom.util.Stopwatch;
|
||||
import org.gradle.api.Project;
|
||||
import org.gradle.api.logging.LogLevel;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import net.fabricmc.loom.LoomGradleExtension;
|
||||
@@ -47,6 +46,7 @@ import net.fabricmc.loom.configuration.providers.mappings.GradleMappingContext;
|
||||
import net.fabricmc.loom.configuration.providers.mappings.mojmap.MojangMappingLayer;
|
||||
import net.fabricmc.loom.configuration.providers.mappings.mojmap.MojangMappingsSpec;
|
||||
import net.fabricmc.loom.util.Constants;
|
||||
import net.fabricmc.loom.util.LoomVersions;
|
||||
import net.fabricmc.loom.util.ZipUtils;
|
||||
import net.fabricmc.mappingio.MappingReader;
|
||||
import net.fabricmc.mappingio.MappingVisitor;
|
||||
@@ -57,6 +57,8 @@ import net.fabricmc.mappingio.tree.MappingTree;
|
||||
import net.fabricmc.mappingio.tree.MemoryMappingTree;
|
||||
|
||||
public class SrgProvider extends DependencyProvider {
|
||||
private static final String INSTALLER_TOOLS_MAIN_CLASS = "net.minecraftforge.installertools.ConsoleTool";
|
||||
|
||||
private Path srg;
|
||||
private Boolean isTsrgV2;
|
||||
private Path mergedMojangRaw;
|
||||
@@ -84,25 +86,23 @@ public class SrgProvider extends DependencyProvider {
|
||||
if (!Files.exists(mergedMojangRaw) || !Files.exists(mergedMojangTrimmed) || refreshDeps()) {
|
||||
Stopwatch stopwatch = Stopwatch.createStarted();
|
||||
getProject().getLogger().lifecycle(":merging mappings (InstallerTools, srg + mojmap)");
|
||||
PrintStream out = System.out;
|
||||
PrintStream err = System.err;
|
||||
|
||||
if (getProject().getGradle().getStartParameter().getLogLevel().compareTo(LogLevel.LIFECYCLE) >= 0) {
|
||||
System.setOut(new PrintStream(NullOutputStream.INSTANCE));
|
||||
System.setErr(new PrintStream(NullOutputStream.INSTANCE));
|
||||
}
|
||||
|
||||
Files.deleteIfExists(mergedMojangRaw);
|
||||
net.minecraftforge.installertools.ConsoleTool.main(new String[] {
|
||||
"--task",
|
||||
"MERGE_MAPPING",
|
||||
"--left",
|
||||
getSrg().toAbsolutePath().toString(),
|
||||
"--right",
|
||||
getMojmapTsrg2(getProject(), getExtension()).toAbsolutePath().toString(),
|
||||
"--classes",
|
||||
"--output",
|
||||
mergedMojangRaw.toAbsolutePath().toString()
|
||||
Path mojmapTsrg2 = getMojmapTsrg2(getProject(), getExtension());
|
||||
ForgeToolValueSource.exec(getProject(), settings -> {
|
||||
settings.classpath(DependencyDownloader.download(getProject(), LoomVersions.FORGE_INSTALLER_TOOLS.mavenNotation()));
|
||||
settings.getMainClass().set(INSTALLER_TOOLS_MAIN_CLASS);
|
||||
settings.args(
|
||||
"--task",
|
||||
"MERGE_MAPPING",
|
||||
"--left",
|
||||
getSrg().toAbsolutePath().toString(),
|
||||
"--right",
|
||||
mojmapTsrg2.toAbsolutePath().toString(),
|
||||
"--classes",
|
||||
"--output",
|
||||
mergedMojangRaw.toAbsolutePath().toString()
|
||||
);
|
||||
});
|
||||
|
||||
MemoryMappingTree tree = new MemoryMappingTree();
|
||||
@@ -113,11 +113,6 @@ public class SrgProvider extends DependencyProvider {
|
||||
tree.accept(writer);
|
||||
}
|
||||
|
||||
if (getProject().getGradle().getStartParameter().getLogLevel().compareTo(LogLevel.LIFECYCLE) >= 0) {
|
||||
System.setOut(out);
|
||||
System.setErr(err);
|
||||
}
|
||||
|
||||
getProject().getLogger().lifecycle(":merged mappings (InstallerTools, srg + mojmap) in " + stopwatch.stop());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user