From f8c0a9632375c58f8bd10e0d26228316351d349e Mon Sep 17 00:00:00 2001 From: rschoene <rene.schoene@tu-dresden.de> Date: Thu, 24 Mar 2022 11:11:38 +0100 Subject: [PATCH] Working on 0.3.0 - add jastadd compiler location and configuration --- .../plugin/CompilerLocationExtension.java | 14 +++++++++++ .../testing/plugin/PreprocessorPlugin.java | 2 ++ .../testing/plugin/RagConnectTest.java | 2 +- .../testing/plugin/RelastTest.java | 25 ++++++++++++++++--- 4 files changed, 39 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/jastadd/preprocessor/testing/plugin/CompilerLocationExtension.java b/src/main/java/org/jastadd/preprocessor/testing/plugin/CompilerLocationExtension.java index 362d47e..2e24b49 100644 --- a/src/main/java/org/jastadd/preprocessor/testing/plugin/CompilerLocationExtension.java +++ b/src/main/java/org/jastadd/preprocessor/testing/plugin/CompilerLocationExtension.java @@ -11,18 +11,32 @@ import org.gradle.api.provider.Property; * @author rschoene - Initial contribution */ public class CompilerLocationExtension { + public Property<String> jastaddCompilerLocation; + public Property<FileCollection> jastaddCompilerConfiguration; public Property<String> relastCompilerLocation; public Property<FileCollection> relastCompilerConfiguration; public Property<String> ragconnectCompilerLocation; public Property<FileCollection> ragconnectCompilerConfiguration; public CompilerLocationExtension(Project project) { + jastaddCompilerLocation = project.getObjects().property(String.class); + jastaddCompilerConfiguration = project.getObjects().property(FileCollection.class); relastCompilerLocation = project.getObjects().property(String.class); relastCompilerConfiguration = project.getObjects().property(FileCollection.class); ragconnectCompilerLocation = project.getObjects().property(String.class); ragconnectCompilerConfiguration = project.getObjects().property(FileCollection.class); } + @Deprecated + @ReplacedBy("jastaddCompilerConfiguration") + public Property<String> getJastAddCompilerLocation() { + return jastaddCompilerLocation; + } + + public Property<FileCollection> getJastAddCompilerConfiguration() { + return jastaddCompilerConfiguration; + } + @Deprecated @ReplacedBy("relastCompilerConfiguration") public Property<String> getRelastCompilerLocation() { diff --git a/src/main/java/org/jastadd/preprocessor/testing/plugin/PreprocessorPlugin.java b/src/main/java/org/jastadd/preprocessor/testing/plugin/PreprocessorPlugin.java index fa5289f..1562c53 100644 --- a/src/main/java/org/jastadd/preprocessor/testing/plugin/PreprocessorPlugin.java +++ b/src/main/java/org/jastadd/preprocessor/testing/plugin/PreprocessorPlugin.java @@ -29,6 +29,8 @@ public class PreprocessorPlugin implements Plugin<Project> { // set compiler locations (if set) project.afterEvaluate(p -> { + RelastTest.setJastAddCompilerLocation(extension.getJastAddCompilerLocation().getOrNull()); + RelastTest.setJastAddCompilerConfiguration(extension.getJastAddCompilerConfiguration().getOrNull()); RelastTest.setRelastCompilerLocation(extension.getRelastCompilerLocation().getOrNull()); RelastTest.setRelastCompilerConfiguration(extension.getRelastCompilerConfiguration().getOrNull()); RagConnectTest.setRagconnectCompilerLocation(extension.getRagconnectCompilerLocation().getOrNull()); diff --git a/src/main/java/org/jastadd/preprocessor/testing/plugin/RagConnectTest.java b/src/main/java/org/jastadd/preprocessor/testing/plugin/RagConnectTest.java index 0bdfc73..0f4ad73 100644 --- a/src/main/java/org/jastadd/preprocessor/testing/plugin/RagConnectTest.java +++ b/src/main/java/org/jastadd/preprocessor/testing/plugin/RagConnectTest.java @@ -94,11 +94,11 @@ public abstract class RagConnectTest extends RelastTest { FileCollection runtimeClasspath = sourceSets.getByName(SourceSet.MAIN_SOURCE_SET_NAME).getRuntimeClasspath(); project.javaexec(javaExecSpec -> { List<Object> args = new ArrayList<>(); - javaExecSpec.setClasspath(runtimeClasspath); if (ragconnectCompilerLocation != null) { if (isVerbose()) { System.err.println("ragconnectCompilerLocation is deprecated, use ragconnectCompilerConfiguration instead"); } + javaExecSpec.setClasspath(runtimeClasspath); javaExecSpec.setMain("-jar"); args.add(ragconnectCompilerLocation); } else { diff --git a/src/main/java/org/jastadd/preprocessor/testing/plugin/RelastTest.java b/src/main/java/org/jastadd/preprocessor/testing/plugin/RelastTest.java index 03491c5..e98def4 100644 --- a/src/main/java/org/jastadd/preprocessor/testing/plugin/RelastTest.java +++ b/src/main/java/org/jastadd/preprocessor/testing/plugin/RelastTest.java @@ -26,6 +26,8 @@ import static groovy.lang.Closure.DELEGATE_FIRST; */ public abstract class RelastTest extends DefaultTask { // configuration from plugin + private static String jastaddCompilerLocation; + private static FileCollection jastaddCompilerConfiguration; private static String relastCompilerLocation; private static FileCollection relastCompilerConfiguration; @@ -35,6 +37,14 @@ public abstract class RelastTest extends DefaultTask { @Nested abstract JastAddConfiguration getJastadd(); + public static void setJastAddCompilerLocation(String jastaddCompilerLocation) { + RelastTest.jastaddCompilerLocation = jastaddCompilerLocation; + } + + public static void setJastAddCompilerConfiguration(FileCollection jastaddCompilerConfiguration) { + RelastTest.jastaddCompilerConfiguration = jastaddCompilerConfiguration; + } + public static void setRelastCompilerLocation(String relastCompilerLocation) { RelastTest.relastCompilerLocation = relastCompilerLocation; } @@ -119,11 +129,11 @@ public abstract class RelastTest extends DefaultTask { FileCollection runtimeClasspath = sourceSets.getByName(SourceSet.MAIN_SOURCE_SET_NAME).getRuntimeClasspath(); project.javaexec(javaExecSpec -> { List<String> args = new ArrayList<>(); - javaExecSpec.setClasspath(runtimeClasspath); if (RelastTest.relastCompilerLocation != null) { if (isVerbose()) { System.err.println("relastCompilerLocation is deprecated, use relastCompilerConfiguration instead"); } + javaExecSpec.setClasspath(runtimeClasspath); javaExecSpec.setMain("-jar"); args.add(RelastTest.relastCompilerLocation); } else { @@ -175,9 +185,18 @@ public abstract class RelastTest extends DefaultTask { SourceSetContainer sourceSets = (SourceSetContainer) project.getProperties().get("sourceSets"); FileCollection runtimeClasspath = sourceSets.getByName(SourceSet.MAIN_SOURCE_SET_NAME).getRuntimeClasspath(); project.javaexec(javaExecSpec -> { - javaExecSpec.setClasspath(runtimeClasspath); - javaExecSpec.setMain("org.jastadd.JastAdd"); List<Object> args = new ArrayList<>(); + if (RelastTest.jastaddCompilerLocation != null) { + if (isVerbose()) { + System.err.println("jastaddCompilerLocation is deprecated, use jastaddCompilerConfiguration instead"); + } + javaExecSpec.setClasspath(runtimeClasspath); + javaExecSpec.setMain("-jar"); + args.add(RelastTest.jastaddCompilerLocation); + } else { + javaExecSpec.setClasspath(RelastTest.jastaddCompilerConfiguration); + javaExecSpec.getMainClass().set("org.jastadd.JastAdd"); + } args.add("--o=" + pathToAbsoluteProject(getJastadd().getOutputDirOrDefault().getPath())); args.add("--package=" + getJastadd().getPackageName()); if (getJastadd().getJastAddList() != null) { -- GitLab