diff options
author | modmuss50 <modmuss50@gmail.com> | 2021-01-21 19:40:59 +0000 |
---|---|---|
committer | modmuss50 <modmuss50@gmail.com> | 2021-01-21 19:40:59 +0000 |
commit | 4a30993da750db7c2462d21dceb1e6132a21f46e (patch) | |
tree | 97954de8405a61db6bd3d5bfcd04b549b2eb357d /src/main/java | |
parent | b622544cbe71542e2d2f630ef396c4e852c617f0 (diff) | |
download | architectury-loom-4a30993da750db7c2462d21dceb1e6132a21f46e.tar.gz architectury-loom-4a30993da750db7c2462d21dceb1e6132a21f46e.tar.bz2 architectury-loom-4a30993da750db7c2462d21dceb1e6132a21f46e.zip |
Apply all buildscript configurations across all parent projects to try and fix fernflower classpath issues again.
If you have any better suggestions please let me know.
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/net/fabricmc/loom/decompilers/fernflower/ForkingJavaExec.java | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/src/main/java/net/fabricmc/loom/decompilers/fernflower/ForkingJavaExec.java b/src/main/java/net/fabricmc/loom/decompilers/fernflower/ForkingJavaExec.java index 8b5f5f60..4c0e21ad 100644 --- a/src/main/java/net/fabricmc/loom/decompilers/fernflower/ForkingJavaExec.java +++ b/src/main/java/net/fabricmc/loom/decompilers/fernflower/ForkingJavaExec.java @@ -24,11 +24,12 @@ package net.fabricmc.loom.decompilers.fernflower; +import java.util.HashSet; +import java.util.Set; + import org.gradle.api.Action; import org.gradle.api.Project; -import org.gradle.api.artifacts.ConfigurationContainer; -import org.gradle.api.artifacts.dsl.DependencyHandler; -import org.gradle.api.file.FileCollection; +import org.gradle.api.artifacts.Configuration; import org.gradle.process.ExecResult; import org.gradle.process.JavaExecSpec; @@ -40,14 +41,21 @@ import org.gradle.process.JavaExecSpec; */ public class ForkingJavaExec { public static ExecResult javaexec(Project project, Action<? super JavaExecSpec> action) { - ConfigurationContainer configurations = project.getBuildscript().getConfigurations(); - DependencyHandler handler = project.getDependencies(); - FileCollection classpath = configurations.getByName("classpath")// - .plus(configurations.detachedConfiguration(handler.localGroovy())); - return project.javaexec(spec -> { - spec.classpath(classpath); + spec.classpath(getForkedFernflowerClasspath(project)); action.execute(spec); }); } + + private static Set<Configuration> getForkedFernflowerClasspath(Project project) { + Set<Configuration> allConfigurations = new HashSet<>(); + Project p = project; + + do { + allConfigurations.addAll(p.getBuildscript().getConfigurations()); + p = p.getRootProject(); + } while (p != p.getRootProject()); + + return allConfigurations; + } } |