aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/functionalTest/java/ch/fhnw/thga/gradleplugins/FregePluginFunctionalTest.java10
-rw-r--r--src/main/java/ch/fhnw/thga/gradleplugins/FregePlugin.java32
2 files changed, 26 insertions, 16 deletions
diff --git a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/FregePluginFunctionalTest.java b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/FregePluginFunctionalTest.java
index f94469c..ad0265b 100644
--- a/src/functionalTest/java/ch/fhnw/thga/gradleplugins/FregePluginFunctionalTest.java
+++ b/src/functionalTest/java/ch/fhnw/thga/gradleplugins/FregePluginFunctionalTest.java
@@ -400,9 +400,10 @@ public class FregePluginFunctionalTest {
class Deps_frege_task_works {
@Test
void given_minimal_build_file_config() throws Exception {
+ String completionFr = "Completion.fr";
String minimalBuildFileConfig = createFregeSection(
fregeBuilder.version("'3.25.84'").release("'3.25alpha'").build());
- appendToFile(buildFile, minimalBuildFileConfig);
+ setupDefaultFregeProjectStructure(SIMPLE_FREGE_CODE, completionFr, minimalBuildFileConfig);
BuildResult result = runGradleTask(DEPS_FREGE_TASK_NAME, "-q");
assertTrue(project.getTasks().getByName(DEPS_FREGE_TASK_NAME) instanceof DependencyFregeTask);
@@ -414,10 +415,12 @@ public class FregePluginFunctionalTest {
void given_build_file_config_with_dependencies() throws Exception {
String minimalBuildFileConfig = createFregeSection(
fregeBuilder.version("'3.25.84'").release("'3.25alpha'").build());
- appendToFile(buildFile, minimalBuildFileConfig);
+ String completionFr = "Completion.fr";
+ setupDefaultFregeProjectStructure(SIMPLE_FREGE_CODE, completionFr, minimalBuildFileConfig);
appendToFile(buildFile, String.join("\n", "repositories {", "mavenCentral()", "}"));
appendToFile(buildFile, String.join("\n", "dependencies {",
"implementation group: 'org.json', name: 'json', version: '20211205'", "}"));
+
BuildResult result = runGradleTask(DEPS_FREGE_TASK_NAME, "-q");
assertTrue(project.getTasks().getByName(DEPS_FREGE_TASK_NAME) instanceof DependencyFregeTask);
assertEquals(SUCCESS, result.task(":" + DEPS_FREGE_TASK_NAME).getOutcome());
@@ -432,9 +435,10 @@ public class FregePluginFunctionalTest {
class Repl_frege_task_works {
@Test
void given_minimal_build_file_config() throws Exception {
+ String completionFr = "Completion.fr";
String minimalBuildFileConfig = createFregeSection(
fregeBuilder.version("'3.25.84'").release("'3.25alpha'").build());
- appendToFile(buildFile, minimalBuildFileConfig);
+ setupDefaultFregeProjectStructure(SIMPLE_FREGE_CODE, completionFr, minimalBuildFileConfig);
BuildResult result = runGradleTask(REPL_FREGE_TASK_NAME, "-q");
assertTrue(project.getTasks().getByName(REPL_FREGE_TASK_NAME) instanceof ReplFregeTask);
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());
});
}
}