From e038abcb8e5d425dae0c8986d58da4a46d88a500 Mon Sep 17 00:00:00 2001 From: asie Date: Mon, 31 Dec 2018 00:42:49 +0100 Subject: [PATCH] more gradle fixes --- .../java/net/fabricmc/loom/AbstractPlugin.java | 18 +++++++++++------- .../loom/providers/ModRemapperProvider.java | 2 +- .../java/net/fabricmc/loom/util/Constants.java | 1 + .../net/fabricmc/loom/util/ModRemapper.java | 16 ++++++++++++++-- .../net/fabricmc/loom/util/SourceRemapper.java | 7 ++++++- 5 files changed, 33 insertions(+), 11 deletions(-) diff --git a/src/main/java/net/fabricmc/loom/AbstractPlugin.java b/src/main/java/net/fabricmc/loom/AbstractPlugin.java index 5764c681..d5b66ab8 100644 --- a/src/main/java/net/fabricmc/loom/AbstractPlugin.java +++ b/src/main/java/net/fabricmc/loom/AbstractPlugin.java @@ -80,6 +80,8 @@ public class AbstractPlugin implements Plugin { Configuration compileModsConfig = project.getConfigurations().maybeCreate(Constants.COMPILE_MODS); compileModsConfig.setTransitive(false); // Dont get transitive deps of mods + Configuration compileModsMappedConfig = project.getConfigurations().maybeCreate(Constants.COMPILE_MODS_MAPPED); + compileModsMappedConfig.setTransitive(false); // Dont get transitive deps of mods Configuration minecraftNamedConfig = project.getConfigurations().maybeCreate(Constants.MINECRAFT_NAMED); minecraftNamedConfig.setTransitive(false); // The launchers do not recurse dependencies Configuration minecraftIntermediaryConfig = project.getConfigurations().maybeCreate(Constants.MINECRAFT_INTERMEDIARY); @@ -94,6 +96,15 @@ public class AbstractPlugin implements Plugin { configureIDEs(); configureCompile(); + extendsFrom(Constants.MINECRAFT_NAMED, Constants.MINECRAFT_DEPENDENCIES); + extendsFrom(Constants.MINECRAFT_INTERMEDIARY, Constants.MINECRAFT_DEPENDENCIES); + + extendsFrom(Constants.COMPILE_MODS_MAPPED, Constants.MINECRAFT_NAMED); + extendsFrom("compile", Constants.COMPILE_MODS_MAPPED); + extendsFrom("compile", Constants.MAPPINGS); + extendsFrom("annotationProcessor", Constants.COMPILE_MODS_MAPPED); + extendsFrom("annotationProcessor", Constants.MAPPINGS); + Map> taskMap = project.getAllTasks(true); for (Map.Entry> entry : taskMap.entrySet()) { Project project = entry.getKey(); @@ -243,13 +254,6 @@ public class AbstractPlugin implements Plugin { handler.add("annotationProcessor", "net.fabricmc:sponge-mixin:" + extension.getMixinVersion()); handler.add("annotationProcessor", "net.fabricmc:fabric-loom:" + extension.getLoomVersion()); - extendsFrom(Constants.MINECRAFT_NAMED, Constants.MINECRAFT_DEPENDENCIES); - extendsFrom(Constants.COMPILE_MODS, Constants.MINECRAFT_NAMED); - extendsFrom("compile", Constants.COMPILE_MODS); - extendsFrom("compile", Constants.MAPPINGS); - extendsFrom("annotationProcessor", Constants.COMPILE_MODS); - extendsFrom("annotationProcessor", Constants.MAPPINGS); - // Enables the default mod remapper if (extension.remapMod) { AbstractArchiveTask jarTask = (AbstractArchiveTask) project1.getTasks().getByName("jar"); diff --git a/src/main/java/net/fabricmc/loom/providers/ModRemapperProvider.java b/src/main/java/net/fabricmc/loom/providers/ModRemapperProvider.java index f322094a..e9711638 100644 --- a/src/main/java/net/fabricmc/loom/providers/ModRemapperProvider.java +++ b/src/main/java/net/fabricmc/loom/providers/ModRemapperProvider.java @@ -62,7 +62,7 @@ public class ModRemapperProvider extends DependencyProvider { throw new RuntimeException("Failed to remap mod"); } - project.getDependencies().add(Constants.COMPILE_MODS, project.getDependencies().module( + project.getDependencies().add(Constants.COMPILE_MODS_MAPPED, project.getDependencies().module( rds + verSuffix )); diff --git a/src/main/java/net/fabricmc/loom/util/Constants.java b/src/main/java/net/fabricmc/loom/util/Constants.java index 6edbc3e9..e2765f66 100644 --- a/src/main/java/net/fabricmc/loom/util/Constants.java +++ b/src/main/java/net/fabricmc/loom/util/Constants.java @@ -36,6 +36,7 @@ public class Constants { public static final String SYSTEM_ARCH = System.getProperty("os.arch").equals("64") ? "64" : "32"; public static final String COMPILE_MODS = "modCompile"; + public static final String COMPILE_MODS_MAPPED = "modCompileMapped"; public static final String MINECRAFT = "minecraft"; public static final String MINECRAFT_DEPENDENCIES = "minecraftLibraries"; public static final String MINECRAFT_INTERMEDIARY = "minecraftIntermediary"; diff --git a/src/main/java/net/fabricmc/loom/util/ModRemapper.java b/src/main/java/net/fabricmc/loom/util/ModRemapper.java index 9c4c9976..c4545829 100644 --- a/src/main/java/net/fabricmc/loom/util/ModRemapper.java +++ b/src/main/java/net/fabricmc/loom/util/ModRemapper.java @@ -60,9 +60,19 @@ public class ModRemapper { String toM = "intermediary"; List classpathFiles = new ArrayList<>(); - classpathFiles.addAll(project.getConfigurations().getByName("compile").getFiles()); +// classpathFiles.addAll(project.getConfigurations().getByName(Constants.COMPILE_MODS).getFiles()); + classpathFiles.addAll(project.getConfigurations().getByName(Constants.MINECRAFT_INTERMEDIARY).getFiles()); Path[] classpath = classpathFiles.stream().map(File::toPath).toArray(Path[]::new); Path modJarPath = modJar.toPath(); + boolean classpathContainsModJarPath = false; + + for (Path p : classpath) { + if (modJarPath.equals(p)) { + modJarPath = p; + classpathContainsModJarPath = true; + break; + } + } String s =modJar.getAbsolutePath(); File modJarOutput = new File(s.substring(0, s.length() - 4) + ".remapped.jar"); @@ -89,7 +99,9 @@ public class ModRemapper { try (OutputConsumerPath outputConsumer = new OutputConsumerPath(modJarOutputPath)) { outputConsumer.addNonClassFiles(modJarPath); remapper.read(classpath); - remapper.read(modJarPath); + if (!classpathContainsModJarPath) { + remapper.read(modJarPath); + } remapper.apply(modJarPath, outputConsumer); } catch (Exception e) { throw new RuntimeException("Failed to remap JAR", e); diff --git a/src/main/java/net/fabricmc/loom/util/SourceRemapper.java b/src/main/java/net/fabricmc/loom/util/SourceRemapper.java index 96550db1..4d635b25 100644 --- a/src/main/java/net/fabricmc/loom/util/SourceRemapper.java +++ b/src/main/java/net/fabricmc/loom/util/SourceRemapper.java @@ -77,9 +77,14 @@ public class SourceRemapper { Mercury mercury = new Mercury(); - for (File file : project.getConfigurations().getByName("compile").getFiles()) { + for (File file : project.getConfigurations().getByName(Constants.MINECRAFT_DEPENDENCIES).getFiles()) { mercury.getClassPath().add(file.toPath()); } + if (!toNamed) { + for (File file : project.getConfigurations().getByName(Constants.COMPILE_MODS_MAPPED).getFiles()) { + mercury.getClassPath().add(file.toPath()); + } + } for (File file : extension.getUnmappedMods()) { if (file.isFile()) { mercury.getClassPath().add(file.toPath());