Update MCE - Remove auto population of minVersion in mixins - Drop some log levels.

dev/0.11
modmuss50 2021-02-11 18:12:27 +00:00 committed by GitHub
parent b8058c693d
commit 409f5f8e93
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 13 additions and 97 deletions

View File

@ -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 : "";
} }

View File

@ -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));

View File

@ -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 {

View File

@ -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();

View File

@ -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);

View File

@ -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()) {

View File

@ -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();
} }
} }

View File

@ -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!");
} }

View File

@ -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";

View File

@ -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);