mirror of
https://github.com/architectury/architectury-loom.git
synced 2026-03-29 04:30:00 -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
|
compileOnly libs.kotlin.gradle.plugin
|
||||||
|
|
||||||
// Forge patches
|
// Forge patches
|
||||||
implementation libs.forge.installer.tools
|
|
||||||
implementation libs.lorenz
|
implementation libs.lorenz
|
||||||
implementation libs.mcinjector
|
implementation libs.mcinjector
|
||||||
implementation libs.opencsv
|
implementation libs.opencsv
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ checkstyle = "10.26.1"
|
|||||||
codenarc = "3.6.0"
|
codenarc = "3.6.0"
|
||||||
|
|
||||||
# Architectury libraries
|
# Architectury libraries
|
||||||
forge-installer-tools = "1.2.0"
|
|
||||||
lorenz = "0.5.3"
|
lorenz = "0.5.3"
|
||||||
mcinjector = "3.8.0"
|
mcinjector = "3.8.0"
|
||||||
opencsv = "5.4"
|
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" }
|
kotlin-metadata = { module = "org.jetbrains.kotlin:kotlin-metadata-jvm", version.ref = "kotlin" }
|
||||||
|
|
||||||
# Architectury
|
# Architectury
|
||||||
forge-installer-tools = { module = "net.minecraftforge:installertools", version.ref = "forge-installer-tools" }
|
|
||||||
lorenz = { module = "org.cadixdev:lorenz", version.ref = "lorenz" }
|
lorenz = { module = "org.cadixdev:lorenz", version.ref = "lorenz" }
|
||||||
mcinjector = { module = "de.oceanlabs.mcp:mcinjector", version.ref = "mcinjector" }
|
mcinjector = { module = "de.oceanlabs.mcp:mcinjector", version.ref = "mcinjector" }
|
||||||
opencsv = { module = "com.opencsv:opencsv", version.ref = "opencsv" }
|
opencsv = { module = "com.opencsv:opencsv", version.ref = "opencsv" }
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ access-transformers-neo = "10.0.2"
|
|||||||
unprotect = "1.3.1"
|
unprotect = "1.3.1"
|
||||||
asm = "9.7"
|
asm = "9.7"
|
||||||
access-transformers-log4j = "2.17.1"
|
access-transformers-log4j = "2.17.1"
|
||||||
|
forge-installer-tools = "1.2.0"
|
||||||
|
|
||||||
[libraries]
|
[libraries]
|
||||||
# Decompilers
|
# Decompilers
|
||||||
@@ -55,3 +56,4 @@ access-transformers-neo = { module = "net.neoforged.accesstransformers:at-cli",
|
|||||||
unprotect = { module = "io.github.juuxel:unprotect", version.ref = "unprotect" }
|
unprotect = { module = "io.github.juuxel:unprotect", version.ref = "unprotect" }
|
||||||
asm = { module = "org.ow2.asm:asm", version.ref = "asm" }
|
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" }
|
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.BufferedReader;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.PrintStream;
|
|
||||||
import java.io.UncheckedIOException;
|
import java.io.UncheckedIOException;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
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 dev.architectury.loom.util.Stopwatch;
|
||||||
import org.gradle.api.Project;
|
import org.gradle.api.Project;
|
||||||
import org.gradle.api.logging.LogLevel;
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import net.fabricmc.loom.LoomGradleExtension;
|
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.MojangMappingLayer;
|
||||||
import net.fabricmc.loom.configuration.providers.mappings.mojmap.MojangMappingsSpec;
|
import net.fabricmc.loom.configuration.providers.mappings.mojmap.MojangMappingsSpec;
|
||||||
import net.fabricmc.loom.util.Constants;
|
import net.fabricmc.loom.util.Constants;
|
||||||
|
import net.fabricmc.loom.util.LoomVersions;
|
||||||
import net.fabricmc.loom.util.ZipUtils;
|
import net.fabricmc.loom.util.ZipUtils;
|
||||||
import net.fabricmc.mappingio.MappingReader;
|
import net.fabricmc.mappingio.MappingReader;
|
||||||
import net.fabricmc.mappingio.MappingVisitor;
|
import net.fabricmc.mappingio.MappingVisitor;
|
||||||
@@ -57,6 +57,8 @@ import net.fabricmc.mappingio.tree.MappingTree;
|
|||||||
import net.fabricmc.mappingio.tree.MemoryMappingTree;
|
import net.fabricmc.mappingio.tree.MemoryMappingTree;
|
||||||
|
|
||||||
public class SrgProvider extends DependencyProvider {
|
public class SrgProvider extends DependencyProvider {
|
||||||
|
private static final String INSTALLER_TOOLS_MAIN_CLASS = "net.minecraftforge.installertools.ConsoleTool";
|
||||||
|
|
||||||
private Path srg;
|
private Path srg;
|
||||||
private Boolean isTsrgV2;
|
private Boolean isTsrgV2;
|
||||||
private Path mergedMojangRaw;
|
private Path mergedMojangRaw;
|
||||||
@@ -84,25 +86,23 @@ public class SrgProvider extends DependencyProvider {
|
|||||||
if (!Files.exists(mergedMojangRaw) || !Files.exists(mergedMojangTrimmed) || refreshDeps()) {
|
if (!Files.exists(mergedMojangRaw) || !Files.exists(mergedMojangTrimmed) || refreshDeps()) {
|
||||||
Stopwatch stopwatch = Stopwatch.createStarted();
|
Stopwatch stopwatch = Stopwatch.createStarted();
|
||||||
getProject().getLogger().lifecycle(":merging mappings (InstallerTools, srg + mojmap)");
|
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);
|
Files.deleteIfExists(mergedMojangRaw);
|
||||||
net.minecraftforge.installertools.ConsoleTool.main(new String[] {
|
Path mojmapTsrg2 = getMojmapTsrg2(getProject(), getExtension());
|
||||||
"--task",
|
ForgeToolValueSource.exec(getProject(), settings -> {
|
||||||
"MERGE_MAPPING",
|
settings.classpath(DependencyDownloader.download(getProject(), LoomVersions.FORGE_INSTALLER_TOOLS.mavenNotation()));
|
||||||
"--left",
|
settings.getMainClass().set(INSTALLER_TOOLS_MAIN_CLASS);
|
||||||
getSrg().toAbsolutePath().toString(),
|
settings.args(
|
||||||
"--right",
|
"--task",
|
||||||
getMojmapTsrg2(getProject(), getExtension()).toAbsolutePath().toString(),
|
"MERGE_MAPPING",
|
||||||
"--classes",
|
"--left",
|
||||||
"--output",
|
getSrg().toAbsolutePath().toString(),
|
||||||
mergedMojangRaw.toAbsolutePath().toString()
|
"--right",
|
||||||
|
mojmapTsrg2.toAbsolutePath().toString(),
|
||||||
|
"--classes",
|
||||||
|
"--output",
|
||||||
|
mergedMojangRaw.toAbsolutePath().toString()
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
MemoryMappingTree tree = new MemoryMappingTree();
|
MemoryMappingTree tree = new MemoryMappingTree();
|
||||||
@@ -113,11 +113,6 @@ public class SrgProvider extends DependencyProvider {
|
|||||||
tree.accept(writer);
|
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());
|
getProject().getLogger().lifecycle(":merged mappings (InstallerTools, srg + mojmap) in " + stopwatch.stop());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user