From 991628d6191c4fd7e0b94425bc96e76aa2dcded8 Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Fri, 8 Jul 2022 20:28:52 +0100 Subject: [PATCH] Ensure all mercury classpath entries exist. Fixes a mmigrateMappings crash in some multi-project setups. --- .../net/fabricmc/loom/util/SourceRemapper.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/fabricmc/loom/util/SourceRemapper.java b/src/main/java/net/fabricmc/loom/util/SourceRemapper.java index 5eeb0eca..159d30c4 100644 --- a/src/main/java/net/fabricmc/loom/util/SourceRemapper.java +++ b/src/main/java/net/fabricmc/loom/util/SourceRemapper.java @@ -227,24 +227,32 @@ public class SourceRemapper { m.setGracefulClasspathChecks(true); m.setSourceCompatibility(Constants.MERCURY_SOURCE_VERSION); + final List classPath = new ArrayList<>(); + for (File file : project.getConfigurations().getByName(Constants.Configurations.LOADER_DEPENDENCIES).getFiles()) { - m.getClassPath().add(file.toPath()); + classPath.add(file.toPath()); } if (!toNamed) { for (File file : project.getConfigurations().getByName("compileClasspath").getFiles()) { - m.getClassPath().add(file.toPath()); + classPath.add(file.toPath()); } } else { final LoomGradleExtension extension = LoomGradleExtension.get(project); for (RemapConfigurationSettings entry : extension.getRemapConfigurations()) { for (File inputFile : entry.getSourceConfiguration().get().getFiles()) { - m.getClassPath().add(inputFile.toPath()); + classPath.add(inputFile.toPath()); } } } + for (Path path : classPath) { + if (Files.exists(path)) { + m.getClassPath().add(path); + } + } + return m; }