Ensure all mercury classpath entries exist. Fixes a migrateMappings crash in some multi-project setups.

This commit is contained in:
modmuss50
2022-07-08 20:28:52 +01:00
parent b25e5cd5a6
commit dbbc3457d5

View File

@@ -227,22 +227,30 @@ public class SourceRemapper {
m.setGracefulClasspathChecks(true);
m.setSourceCompatibility(Constants.MERCURY_SOURCE_VERSION);
final List<Path> 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 {
for (RemappedConfigurationEntry entry : Constants.MOD_COMPILE_ENTRIES) {
for (File inputFile : project.getConfigurations().getByName(entry.sourceConfiguration()).getFiles()) {
m.getClassPath().add(inputFile.toPath());
classPath.add(inputFile.toPath());
}
}
}
for (Path path : classPath) {
if (Files.exists(path)) {
m.getClassPath().add(path);
}
}
return m;
}