diff options
author | modmuss50 <modmuss50@gmail.com> | 2021-03-23 19:08:15 +0000 |
---|---|---|
committer | modmuss50 <modmuss50@gmail.com> | 2021-03-23 19:08:15 +0000 |
commit | 43a6b0f65fa468b57a63795c62ce4f48e05b7eb2 (patch) | |
tree | 460054956438f5e5a4deea38ece4c95e15bb8c99 /src/main | |
parent | c02f436123e2e89dd6beef8bc3ea2872ca6dc509 (diff) | |
download | architectury-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.java | 25 |
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(); + } } |