aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authormodmuss50 <modmuss50@gmail.com>2021-01-21 19:40:59 +0000
committermodmuss50 <modmuss50@gmail.com>2021-01-21 19:40:59 +0000
commit4a30993da750db7c2462d21dceb1e6132a21f46e (patch)
tree97954de8405a61db6bd3d5bfcd04b549b2eb357d /src/main/java
parentb622544cbe71542e2d2f630ef396c4e852c617f0 (diff)
downloadarchitectury-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.java26
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;
+ }
}