From 97f594da8e132c3d33cf39fe8d7cc0e76d84aeb6 Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Sat, 28 Jan 2023 13:46:33 +0000 Subject: [PATCH] Recursively copy configurations. Co-authored-by: Juuz <6596629+juuxel@users.noreply.github.com> --- .../loom/configuration/mods/ModConfigurationRemapper.java | 2 +- .../loom/configuration/processors/SpecContextImpl.java | 2 +- src/test/resources/projects/maven/build.gradle | 7 ++++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/fabricmc/loom/configuration/mods/ModConfigurationRemapper.java b/src/main/java/net/fabricmc/loom/configuration/mods/ModConfigurationRemapper.java index e646405d..0079e333 100644 --- a/src/main/java/net/fabricmc/loom/configuration/mods/ModConfigurationRemapper.java +++ b/src/main/java/net/fabricmc/loom/configuration/mods/ModConfigurationRemapper.java @@ -94,7 +94,7 @@ public class ModConfigurationRemapper { final Configuration target = RemapConfigurations.getOrCreateCollectorConfiguration(project, entry, runtime); // We copy the source with the desired usage type to get only the runtime or api jars, not both. - final Configuration sourceCopy = entry.getSourceConfiguration().get().copy(); + final Configuration sourceCopy = entry.getSourceConfiguration().get().copyRecursive(); final Usage usage = project.getObjects().named(Usage.class, runtime ? Usage.JAVA_RUNTIME : Usage.JAVA_API); sourceCopy.attributes(attributes -> attributes.attribute(Usage.USAGE_ATTRIBUTE, usage)); configsToRemap.put(sourceCopy, target); diff --git a/src/main/java/net/fabricmc/loom/configuration/processors/SpecContextImpl.java b/src/main/java/net/fabricmc/loom/configuration/processors/SpecContextImpl.java index 83de5673..9ce71a41 100644 --- a/src/main/java/net/fabricmc/loom/configuration/processors/SpecContextImpl.java +++ b/src/main/java/net/fabricmc/loom/configuration/processors/SpecContextImpl.java @@ -128,7 +128,7 @@ public record SpecContextImpl(List modDependencies, List { - final Configuration configuration = settings.getSourceConfiguration().get().copy(); + final Configuration configuration = settings.getSourceConfiguration().get().copyRecursive(); configuration.attributes(attributes -> attributes.attribute(Usage.USAGE_ATTRIBUTE, usage)); return configuration.resolve().stream().map(File::toPath); }; diff --git a/src/test/resources/projects/maven/build.gradle b/src/test/resources/projects/maven/build.gradle index 0b19a3ad..2c3e3786 100644 --- a/src/test/resources/projects/maven/build.gradle +++ b/src/test/resources/projects/maven/build.gradle @@ -16,12 +16,17 @@ repositories { } } +configurations { + testConfig + modImplementation.extendsFrom testConfig +} + dependencies { minecraft "com.mojang:minecraft:1.16.5" mappings "net.fabricmc:yarn:1.16.5+build.5:v2" modImplementation "net.fabricmc:fabric-loader:0.11.2" - modImplementation System.getProperty("loom.test.resolve") + testConfig System.getProperty("loom.test.resolve") } task checkClasspaths {