diff options
author | Thibault Gagnaux <tgagnaux@gmail.com> | 2021-12-20 10:55:27 +0100 |
---|---|---|
committer | Thibault Gagnaux <tgagnaux@gmail.com> | 2021-12-21 11:19:07 +0100 |
commit | 813ab013c4b15ed44615313b7c15d405bdeadb91 (patch) | |
tree | 6ef05def94ee7294e99630a330c0015789813508 /src/main | |
parent | e7b73f3a18c487efe6122e875f0b1ff96af3dd8f (diff) | |
download | frege-gradle-plugin-813ab013c4b15ed44615313b7c15d405bdeadb91.tar.gz frege-gradle-plugin-813ab013c4b15ed44615313b7c15d405bdeadb91.tar.bz2 frege-gradle-plugin-813ab013c4b15ed44615313b7c15d405bdeadb91.zip |
feat: adds `outputDir` to classpath
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/ch/fhnw/thga/gradleplugins/FregePlugin.java | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/src/main/java/ch/fhnw/thga/gradleplugins/FregePlugin.java b/src/main/java/ch/fhnw/thga/gradleplugins/FregePlugin.java index 18016f3..2f1f41a 100644 --- a/src/main/java/ch/fhnw/thga/gradleplugins/FregePlugin.java +++ b/src/main/java/ch/fhnw/thga/gradleplugins/FregePlugin.java @@ -5,19 +5,20 @@ import org.gradle.api.Project; import org.gradle.api.artifacts.Configuration; import org.gradle.api.file.FileCollection; import org.gradle.api.file.RegularFile; +import org.gradle.api.file.SourceDirectorySet; import org.gradle.api.provider.Provider; import org.gradle.api.tasks.TaskProvider; import ch.fhnw.thga.gradleplugins.internal.DependencyFregeTask; public class FregePlugin implements Plugin<Project> { - public static final String SETUP_FREGE_TASK_NAME = "setupFrege"; - public static final String COMPILE_FREGE_TASK_NAME = "compileFrege"; - public static final String RUN_FREGE_TASK_NAME = "runFrege"; - public static final String REPL_FREGE_TASK_NAME = "replFrege"; - public static final String DEPS_FREGE_TASK_NAME = "depsFrege"; - public static final String FREGE_PLUGIN_ID = "ch.fhnw.thga.frege"; - public static final String FREGE_EXTENSION_NAME = "frege"; + public static final String SETUP_FREGE_TASK_NAME = "setupFrege"; + public static final String COMPILE_FREGE_TASK_NAME = "compileFrege"; + public static final String RUN_FREGE_TASK_NAME = "runFrege"; + public static final String REPL_FREGE_TASK_NAME = "replFrege"; + public static final String DEPS_FREGE_TASK_NAME = "depsFrege"; + public static final String FREGE_PLUGIN_ID = "ch.fhnw.thga.frege"; + public static final String FREGE_EXTENSION_NAME = "frege"; public static final String FREGE_IMPLEMENTATION_SCOPE = "implementation"; private FileCollection setupClasspath(Project project, Configuration dependencies, @@ -32,7 +33,8 @@ public class FregePlugin implements Plugin<Project> { @Override public void apply(Project project) { Configuration implementation = project.getConfigurations().create(FREGE_IMPLEMENTATION_SCOPE); - FregeExtension extension = project.getExtensions().create(FREGE_EXTENSION_NAME, FregeExtension.class); + FregeExtension extension = project.getExtensions().create(FREGE_EXTENSION_NAME, FregeExtension.class); + TaskProvider<SetupFregeTask> setupFregeCompilerTask = project.getTasks().register(SETUP_FREGE_TASK_NAME, SetupFregeTask.class, task -> { task.getVersion().set(extension.getVersion()); @@ -49,6 +51,7 @@ public class FregePlugin implements Plugin<Project> { task.getFregeCompilerFlags().set(extension.getCompilerFlags()); task.getFregeDependencies().set(implementation.getAsPath()); }); + project.getTasks().register(RUN_FREGE_TASK_NAME, RunFregeTask.class, task -> { task.dependsOn(compileFregeTask); task.getFregeCompilerJar().set(setupFregeCompilerTask.get().getFregeCompilerOutputPath()); @@ -56,16 +59,19 @@ public class FregePlugin implements Plugin<Project> { task.getMainModule().set(extension.getMainModule()); task.getFregeDependencies().set(implementation.getAsPath()); }); + project.getTasks().register(DEPS_FREGE_TASK_NAME, DependencyFregeTask.class, task -> { - task.dependsOn(setupFregeCompilerTask); + task.dependsOn(compileFregeTask); task.getClasspath().setFrom(setupClasspath(project, implementation, - setupFregeCompilerTask.get().getFregeCompilerOutputPath())); + setupFregeCompilerTask.get().getFregeCompilerOutputPath()), extension.getOutputDir().get()); }); + project.getTasks().register(REPL_FREGE_TASK_NAME, ReplFregeTask.class, task -> { - task.dependsOn(setupFregeCompilerTask); - task.getFregeClasspath().setFrom(setupClasspath(project, implementation, - setupFregeCompilerTask.get().getFregeCompilerOutputPath())); + task.dependsOn(compileFregeTask); + task.getFregeClasspath() + .setFrom(setupClasspath(project, implementation, setupFregeCompilerTask.get().getFregeCompilerOutputPath()) + , extension.getOutputDir().get()); }); } } |