diff options
author | Thibault Gagnaux <tgagnaux@gmail.com> | 2021-11-17 09:50:12 +0100 |
---|---|---|
committer | Thibault Gagnaux <tgagnaux@gmail.com> | 2021-11-17 09:50:12 +0100 |
commit | 8c987f0a58470953dc3ac1b9cdff1ac55aaa4e81 (patch) | |
tree | ba99639e0c4013daf8c71a98f3f55fd8f2bb2d90 /src/main/java/ch/fhnw | |
parent | c093758e568cb14ba482f90f1fa513dc15d846a1 (diff) | |
download | frege-gradle-plugin-8c987f0a58470953dc3ac1b9cdff1ac55aaa4e81.tar.gz frege-gradle-plugin-8c987f0a58470953dc3ac1b9cdff1ac55aaa4e81.tar.bz2 frege-gradle-plugin-8c987f0a58470953dc3ac1b9cdff1ac55aaa4e81.zip |
feat: Adds incremental build and build cache support for the `fregeCompile` task
Diffstat (limited to 'src/main/java/ch/fhnw')
-rw-r--r-- | src/main/java/ch/fhnw/thga/gradleplugins/CompileFregeTask.java | 8 | ||||
-rw-r--r-- | src/main/java/ch/fhnw/thga/gradleplugins/FregeExtension.java | 6 |
2 files changed, 11 insertions, 3 deletions
diff --git a/src/main/java/ch/fhnw/thga/gradleplugins/CompileFregeTask.java b/src/main/java/ch/fhnw/thga/gradleplugins/CompileFregeTask.java index 020bc7c..9dc148f 100644 --- a/src/main/java/ch/fhnw/thga/gradleplugins/CompileFregeTask.java +++ b/src/main/java/ch/fhnw/thga/gradleplugins/CompileFregeTask.java @@ -13,21 +13,27 @@ import org.gradle.api.file.RegularFileProperty; import org.gradle.api.model.ObjectFactory; import org.gradle.api.provider.ListProperty; import org.gradle.api.provider.Provider; +import org.gradle.api.tasks.CacheableTask; import org.gradle.api.tasks.Input; import org.gradle.api.tasks.InputDirectory; import org.gradle.api.tasks.InputFile; import org.gradle.api.tasks.Internal; import org.gradle.api.tasks.JavaExec; import org.gradle.api.tasks.OutputDirectory; +import org.gradle.api.tasks.PathSensitive; +import org.gradle.api.tasks.PathSensitivity; import org.gradle.api.tasks.TaskAction; +@CacheableTask public abstract class CompileFregeTask extends DefaultTask { private final JavaExec javaExec; @InputFile + @PathSensitive(PathSensitivity.RELATIVE) public abstract RegularFileProperty getFregeCompilerJar(); @InputDirectory + @PathSensitive(PathSensitivity.RELATIVE) public abstract DirectoryProperty getFregeMainSourceDir(); @Input @@ -60,4 +66,4 @@ public abstract class CompileFregeTask extends DefaultTask { .flatMap(Collection::stream).collect(Collectors.toList()); javaExec.setClasspath(getProject().files(getFregeCompilerJar())).setArgs(compilerArgs).exec(); } -} +}
\ No newline at end of file diff --git a/src/main/java/ch/fhnw/thga/gradleplugins/FregeExtension.java b/src/main/java/ch/fhnw/thga/gradleplugins/FregeExtension.java index f134ec2..ea02493 100644 --- a/src/main/java/ch/fhnw/thga/gradleplugins/FregeExtension.java +++ b/src/main/java/ch/fhnw/thga/gradleplugins/FregeExtension.java @@ -12,6 +12,8 @@ import org.gradle.api.provider.Property; public abstract class FregeExtension { public static final String DEFAULT_DOWNLOAD_DIRECTORY = "lib"; public static final String DEFAULT_RELATIVE_OUTPUT_DIR = "classes/main/frege"; + public static final String DEFAULT_RELATIVE_SOURCE_DIR = "src/main/frege"; + public static final List<String> DEFAULT_COMPILER_FLAGS = List.of("-O", "-make"); public abstract Property<String> getVersion(); @@ -30,8 +32,8 @@ public abstract class FregeExtension { @Inject public FregeExtension(ProjectLayout projectLayout) { getCompilerDownloadDir().convention(projectLayout.getProjectDirectory().dir(DEFAULT_DOWNLOAD_DIRECTORY)); - getMainSourceDir().convention(projectLayout.getProjectDirectory()); + getMainSourceDir().convention(projectLayout.getProjectDirectory().dir(DEFAULT_RELATIVE_SOURCE_DIR)); getOutputDir().convention(projectLayout.getBuildDirectory().dir(DEFAULT_RELATIVE_OUTPUT_DIR)); - getCompilerFlags().convention(List.of("-O", "-make")); + getCompilerFlags().convention(DEFAULT_COMPILER_FLAGS); } } |