aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authormodmuss50 <modmuss50@gmail.com>2021-03-23 19:08:15 +0000
committermodmuss50 <modmuss50@gmail.com>2021-03-23 19:08:15 +0000
commit43a6b0f65fa468b57a63795c62ce4f48e05b7eb2 (patch)
tree460054956438f5e5a4deea38ece4c95e15bb8c99 /src/main
parentc02f436123e2e89dd6beef8bc3ea2872ca6dc509 (diff)
downloadarchitectury-loom-43a6b0f65fa468b57a63795c62ce4f48e05b7eb2.tar.gz
architectury-loom-43a6b0f65fa468b57a63795c62ce4f48e05b7eb2.tar.bz2
architectury-loom-43a6b0f65fa468b57a63795c62ce4f48e05b7eb2.zip
Revert some of the changes to genSource's.
More work is needed to fix all the issues with it but its not really something I want to get into right now.
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/net/fabricmc/loom/decompilers/fernflower/ForkingJavaExec.java25
1 files changed, 24 insertions, 1 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 b62784fb..f33e491f 100644
--- a/src/main/java/net/fabricmc/loom/decompilers/fernflower/ForkingJavaExec.java
+++ b/src/main/java/net/fabricmc/loom/decompilers/fernflower/ForkingJavaExec.java
@@ -24,10 +24,14 @@
package net.fabricmc.loom.decompilers.fernflower;
+import java.net.URL;
import java.net.URLClassLoader;
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.process.ExecResult;
import org.gradle.process.JavaExecSpec;
@@ -40,8 +44,27 @@ import org.gradle.process.JavaExecSpec;
public class ForkingJavaExec {
public static ExecResult javaexec(Project project, Action<? super JavaExecSpec> action) {
return project.javaexec(spec -> {
- spec.classpath((Object[]) ((URLClassLoader) ForkingJavaExec.class.getClassLoader()).getURLs());
+ spec.classpath(getClasspath(project));
action.execute(spec);
});
}
+
+ private static Object getClasspath(Project project) {
+ if (System.getProperty("fabric.loom.test") != null) {
+ return getTestClasspath();
+ }
+
+ return getRuntimeClasspath(project.getRootProject().getPlugins().hasPlugin("fabric-loom") ? project.getRootProject() : project);
+ }
+
+ private static FileCollection getRuntimeClasspath(Project project) {
+ ConfigurationContainer configurations = project.getBuildscript().getConfigurations();
+ DependencyHandler handler = project.getDependencies();
+ return configurations.getByName("classpath")
+ .plus(configurations.detachedConfiguration(handler.localGroovy()));
+ }
+
+ private static URL[] getTestClasspath() {
+ return ((URLClassLoader) ForkingJavaExec.class.getClassLoader()).getURLs();
+ }
}