Update MCE - Remove auto population of minVersion in mixins - Drop some log levels.
parent
b8058c693d
commit
409f5f8e93
|
@ -27,13 +27,10 @@ package net.fabricmc.loom;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.function.BiPredicate;
|
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
@ -44,12 +41,10 @@ import org.cadixdev.mercury.Mercury;
|
||||||
import org.gradle.api.Action;
|
import org.gradle.api.Action;
|
||||||
import org.gradle.api.NamedDomainObjectContainer;
|
import org.gradle.api.NamedDomainObjectContainer;
|
||||||
import org.gradle.api.Project;
|
import org.gradle.api.Project;
|
||||||
import org.gradle.api.artifacts.Configuration;
|
|
||||||
import org.gradle.api.artifacts.Dependency;
|
import org.gradle.api.artifacts.Dependency;
|
||||||
import org.gradle.api.file.ConfigurableFileCollection;
|
import org.gradle.api.file.ConfigurableFileCollection;
|
||||||
import org.gradle.api.plugins.BasePluginConvention;
|
import org.gradle.api.plugins.BasePluginConvention;
|
||||||
import org.jetbrains.annotations.ApiStatus;
|
import org.jetbrains.annotations.ApiStatus;
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
|
|
||||||
import net.fabricmc.loom.api.decompilers.LoomDecompiler;
|
import net.fabricmc.loom.api.decompilers.LoomDecompiler;
|
||||||
import net.fabricmc.loom.configuration.LoomDependencyManager;
|
import net.fabricmc.loom.configuration.LoomDependencyManager;
|
||||||
|
@ -263,81 +258,6 @@ public class LoomGradleExtension {
|
||||||
return new File(getProjectPersistentCache(), "launch.cfg");
|
return new File(getProjectPersistentCache(), "launch.cfg");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
|
||||||
private static Dependency findDependency(Project p, Collection<Configuration> configs, BiPredicate<String, String> groupNameFilter) {
|
|
||||||
for (Configuration config : configs) {
|
|
||||||
for (Dependency dependency : config.getDependencies()) {
|
|
||||||
String group = dependency.getGroup();
|
|
||||||
String name = dependency.getName();
|
|
||||||
|
|
||||||
if (groupNameFilter.test(group, name)) {
|
|
||||||
p.getLogger().debug("Loom findDependency found: " + group + ":" + name + ":" + dependency.getVersion());
|
|
||||||
return dependency;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
private <T> T recurseProjects(Function<Project, T> projectTFunction) {
|
|
||||||
Project p = this.project;
|
|
||||||
T result;
|
|
||||||
|
|
||||||
while (p.getRootProject() != p) {
|
|
||||||
if ((result = projectTFunction.apply(p)) != null) {
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
p = p.getRootProject();
|
|
||||||
}
|
|
||||||
|
|
||||||
result = projectTFunction.apply(p);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
private Dependency getMixinDependency() {
|
|
||||||
return recurseProjects(p -> {
|
|
||||||
List<Configuration> configs = new ArrayList<>();
|
|
||||||
// check compile classpath first
|
|
||||||
Configuration possibleCompileClasspath = p.getConfigurations().findByName("compileClasspath");
|
|
||||||
|
|
||||||
if (possibleCompileClasspath != null) {
|
|
||||||
configs.add(possibleCompileClasspath);
|
|
||||||
}
|
|
||||||
|
|
||||||
// failing that, buildscript
|
|
||||||
configs.addAll(p.getBuildscript().getConfigurations());
|
|
||||||
|
|
||||||
return findDependency(p, configs, (group, name) -> {
|
|
||||||
if (name.equalsIgnoreCase("mixin") && group.equalsIgnoreCase("org.spongepowered")) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return name.equalsIgnoreCase("sponge-mixin") && group.equalsIgnoreCase("net.fabricmc");
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
public String getMixinJsonVersion() {
|
|
||||||
Dependency dependency = getMixinDependency();
|
|
||||||
|
|
||||||
if (dependency != null) {
|
|
||||||
if (dependency.getGroup().equalsIgnoreCase("net.fabricmc")) {
|
|
||||||
if (Objects.requireNonNull(dependency.getVersion()).split("\\.").length >= 4) {
|
|
||||||
return dependency.getVersion().substring(0, dependency.getVersion().lastIndexOf('.')) + "-SNAPSHOT";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return dependency.getVersion();
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLoaderLaunchMethod() {
|
public String getLoaderLaunchMethod() {
|
||||||
return loaderLaunchMethod != null ? loaderLaunchMethod : "";
|
return loaderLaunchMethod != null ? loaderLaunchMethod : "";
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,7 +42,7 @@ import net.fabricmc.loom.LoomGradlePlugin;
|
||||||
public final class MixinRefmapHelper {
|
public final class MixinRefmapHelper {
|
||||||
private MixinRefmapHelper() { }
|
private MixinRefmapHelper() { }
|
||||||
|
|
||||||
public static boolean addRefmapName(String filename, String mixinVersion, Path outputPath) {
|
public static boolean addRefmapName(String filename, Path outputPath) {
|
||||||
File output = outputPath.toFile();
|
File output = outputPath.toFile();
|
||||||
Set<String> mixinFilenames = findMixins(output, true);
|
Set<String> mixinFilenames = findMixins(output, true);
|
||||||
|
|
||||||
|
@ -56,10 +56,6 @@ public final class MixinRefmapHelper {
|
||||||
json.addProperty("refmap", filename);
|
json.addProperty("refmap", filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!json.has("minVersion") && mixinVersion != null) {
|
|
||||||
json.addProperty("minVersion", mixinVersion);
|
|
||||||
}
|
|
||||||
|
|
||||||
return LoomGradlePlugin.GSON.toJson(json);
|
return LoomGradlePlugin.GSON.toJson(json);
|
||||||
}
|
}
|
||||||
})).toArray(ZipEntryTransformerEntry[]::new));
|
})).toArray(ZipEntryTransformerEntry[]::new));
|
||||||
|
|
|
@ -51,7 +51,7 @@ public class MinecraftProcessedProvider extends MinecraftMappedProvider {
|
||||||
@Override
|
@Override
|
||||||
protected void addDependencies(DependencyInfo dependency, Consumer<Runnable> postPopulationScheduler) {
|
protected void addDependencies(DependencyInfo dependency, Consumer<Runnable> postPopulationScheduler) {
|
||||||
if (jarProcessorManager.isInvalid(projectMappedJar) || isRefreshDeps()) {
|
if (jarProcessorManager.isInvalid(projectMappedJar) || isRefreshDeps()) {
|
||||||
getProject().getLogger().lifecycle(":processing mapped jar");
|
getProject().getLogger().info(":processing mapped jar");
|
||||||
invalidateJars();
|
invalidateJars();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -217,7 +217,7 @@ public class MinecraftProvider extends DependencyProvider {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void mergeJars(Logger logger) throws IOException {
|
private void mergeJars(Logger logger) throws IOException {
|
||||||
logger.lifecycle(":merging jars");
|
logger.info(":merging jars");
|
||||||
|
|
||||||
try (JarMerger jarMerger = new JarMerger(minecraftClientJar, minecraftServerJar, minecraftMergedJar)) {
|
try (JarMerger jarMerger = new JarMerger(minecraftClientJar, minecraftServerJar, minecraftMergedJar)) {
|
||||||
jarMerger.enableSyntheticParamsOffset();
|
jarMerger.enableSyntheticParamsOffset();
|
||||||
|
|
|
@ -176,7 +176,7 @@ public class MappingsProvider extends DependencyProvider {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void storeMappings(Project project, MinecraftProvider minecraftProvider, Path yarnJar) throws IOException {
|
private void storeMappings(Project project, MinecraftProvider minecraftProvider, Path yarnJar) throws IOException {
|
||||||
project.getLogger().lifecycle(":extracting " + yarnJar.getFileName());
|
project.getLogger().info(":extracting " + yarnJar.getFileName());
|
||||||
|
|
||||||
try (FileSystem fileSystem = FileSystems.newFileSystem(yarnJar, (ClassLoader) null)) {
|
try (FileSystem fileSystem = FileSystems.newFileSystem(yarnJar, (ClassLoader) null)) {
|
||||||
extractMappings(fileSystem, baseTinyMappings);
|
extractMappings(fileSystem, baseTinyMappings);
|
||||||
|
|
|
@ -73,7 +73,7 @@ public class MinecraftAssetsProvider {
|
||||||
File checksumInfo = new File(assets, "checksum" + File.separator + minecraftProvider.getMinecraftVersion() + ".json");
|
File checksumInfo = new File(assets, "checksum" + File.separator + minecraftProvider.getMinecraftVersion() + ".json");
|
||||||
|
|
||||||
if (!assetsInfo.exists() || !Checksum.equals(assetsInfo, assetIndex.sha1)) {
|
if (!assetsInfo.exists() || !Checksum.equals(assetsInfo, assetIndex.sha1)) {
|
||||||
project.getLogger().lifecycle(":downloading asset index");
|
project.getLogger().info(":downloading asset index");
|
||||||
|
|
||||||
if (offline) {
|
if (offline) {
|
||||||
if (assetsInfo.exists()) {
|
if (assetsInfo.exists()) {
|
||||||
|
|
|
@ -87,7 +87,7 @@ public class MigrateMappingsTask extends AbstractLoomTask {
|
||||||
Project project = getProject();
|
Project project = getProject();
|
||||||
LoomGradleExtension extension = getExtension();
|
LoomGradleExtension extension = getExtension();
|
||||||
|
|
||||||
project.getLogger().lifecycle(":loading mappings");
|
project.getLogger().info(":loading mappings");
|
||||||
|
|
||||||
if (!Files.exists(inputDir) || !Files.isDirectory(inputDir)) {
|
if (!Files.exists(inputDir) || !Files.isDirectory(inputDir)) {
|
||||||
throw new IllegalArgumentException("Could not find input directory: " + inputDir.toAbsolutePath());
|
throw new IllegalArgumentException("Could not find input directory: " + inputDir.toAbsolutePath());
|
||||||
|
@ -161,7 +161,7 @@ public class MigrateMappingsTask extends AbstractLoomTask {
|
||||||
private static void migrateMappings(Project project, MinecraftMappedProvider minecraftMappedProvider,
|
private static void migrateMappings(Project project, MinecraftMappedProvider minecraftMappedProvider,
|
||||||
Path inputDir, Path outputDir, TinyTree currentMappings, TinyTree targetMappings
|
Path inputDir, Path outputDir, TinyTree currentMappings, TinyTree targetMappings
|
||||||
) throws IOException {
|
) throws IOException {
|
||||||
project.getLogger().lifecycle(":joining mappings");
|
project.getLogger().info(":joining mappings");
|
||||||
|
|
||||||
MappingSet mappingSet = new TinyMappingsJoiner(
|
MappingSet mappingSet = new TinyMappingsJoiner(
|
||||||
currentMappings, "named",
|
currentMappings, "named",
|
||||||
|
@ -191,7 +191,7 @@ public class MigrateMappingsTask extends AbstractLoomTask {
|
||||||
project.getLogger().warn("Could not remap fully!", e);
|
project.getLogger().warn("Could not remap fully!", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
project.getLogger().lifecycle(":cleaning file descriptors");
|
project.getLogger().info(":cleaning file descriptors");
|
||||||
System.gc();
|
System.gc();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -116,7 +116,7 @@ public class RemapJarTask extends Jar {
|
||||||
remapOption.execute(remapperBuilder);
|
remapOption.execute(remapperBuilder);
|
||||||
}
|
}
|
||||||
|
|
||||||
project.getLogger().lifecycle(":remapping " + input.getFileName());
|
project.getLogger().info(":remapping " + input.getFileName());
|
||||||
|
|
||||||
StringBuilder rc = new StringBuilder("Remap classpath: ");
|
StringBuilder rc = new StringBuilder("Remap classpath: ");
|
||||||
|
|
||||||
|
@ -148,7 +148,7 @@ public class RemapJarTask extends Jar {
|
||||||
throw new RuntimeException("Failed to remap " + input + " to " + output + " - file missing!");
|
throw new RuntimeException("Failed to remap " + input + " to " + output + " - file missing!");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (MixinRefmapHelper.addRefmapName(extension.getRefmapName(), extension.getMixinJsonVersion(), output)) {
|
if (MixinRefmapHelper.addRefmapName(extension.getRefmapName(), output)) {
|
||||||
project.getLogger().debug("Transformed mixin reference maps in output JAR!");
|
project.getLogger().debug("Transformed mixin reference maps in output JAR!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -218,7 +218,7 @@ public class RemapJarTask extends Jar {
|
||||||
throw new RuntimeException("Failed to remap " + input + " to " + output + " - file missing!");
|
throw new RuntimeException("Failed to remap " + input + " to " + output + " - file missing!");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (MixinRefmapHelper.addRefmapName(extension.getRefmapName(), extension.getMixinJsonVersion(), output)) {
|
if (MixinRefmapHelper.addRefmapName(extension.getRefmapName(), output)) {
|
||||||
project.getLogger().debug("Transformed mixin reference maps in output JAR!");
|
project.getLogger().debug("Transformed mixin reference maps in output JAR!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -99,7 +99,7 @@ public class Constants {
|
||||||
* Constants for versions of dependencies.
|
* Constants for versions of dependencies.
|
||||||
*/
|
*/
|
||||||
public static final class Versions {
|
public static final class Versions {
|
||||||
public static final String MIXIN_COMPILE_EXTENSIONS = "0.3.2.6";
|
public static final String MIXIN_COMPILE_EXTENSIONS = "0.4.0";
|
||||||
public static final String DEV_LAUNCH_INJECTOR = "0.2.1+build.8";
|
public static final String DEV_LAUNCH_INJECTOR = "0.2.1+build.8";
|
||||||
public static final String TERMINAL_CONSOLE_APPENDER = "1.2.0";
|
public static final String TERMINAL_CONSOLE_APPENDER = "1.2.0";
|
||||||
public static final String JETBRAINS_ANNOTATIONS = "19.0.0";
|
public static final String JETBRAINS_ANNOTATIONS = "19.0.0";
|
||||||
|
|
|
@ -173,7 +173,7 @@ public class SourceRemapper {
|
||||||
MappingSet mappings = extension.getOrCreateSrcMappingCache(toNamed ? 1 : 0, () -> {
|
MappingSet mappings = extension.getOrCreateSrcMappingCache(toNamed ? 1 : 0, () -> {
|
||||||
try {
|
try {
|
||||||
TinyTree m = mappingsProvider.getMappings();
|
TinyTree m = mappingsProvider.getMappings();
|
||||||
project.getLogger().lifecycle(":loading " + (toNamed ? "intermediary -> named" : "named -> intermediary") + " source mappings");
|
project.getLogger().info(":loading " + (toNamed ? "intermediary -> named" : "named -> intermediary") + " source mappings");
|
||||||
return new TinyMappingsReader(m, toNamed ? "intermediary" : "named", toNamed ? "named" : "intermediary").read();
|
return new TinyMappingsReader(m, toNamed ? "intermediary" : "named", toNamed ? "named" : "intermediary").read();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
|
|
Loading…
Reference in New Issue