diff options
Diffstat (limited to 'src/main/groovy')
-rw-r--r-- | src/main/groovy/frege/gradle/FregePlugin.groovy (renamed from src/main/groovy/org/gradle/frege/FregePlugin.groovy) | 6 | ||||
-rw-r--r-- | src/main/groovy/frege/gradle/FregePluginExtension.groovy (renamed from src/main/groovy/org/gradle/frege/FregePluginExtension.groovy) | 2 | ||||
-rw-r--r-- | src/main/groovy/frege/gradle/FregeTask.groovy (renamed from src/main/groovy/org/gradle/frege/FregeTask.groovy) | 19 | ||||
-rw-r--r-- | src/main/groovy/frege/gradle/NativeGenTask.groovy | 25 | ||||
-rw-r--r-- | src/main/groovy/frege/gradle/ReplTask.groovy | 16 |
5 files changed, 57 insertions, 11 deletions
diff --git a/src/main/groovy/org/gradle/frege/FregePlugin.groovy b/src/main/groovy/frege/gradle/FregePlugin.groovy index 16bcecf..e2777ed 100644 --- a/src/main/groovy/org/gradle/frege/FregePlugin.groovy +++ b/src/main/groovy/frege/gradle/FregePlugin.groovy @@ -1,4 +1,4 @@ -package org.gradle.frege +package frege.gradle import org.gradle.api.Plugin import org.gradle.api.Project @@ -17,6 +17,10 @@ class FregePlugin implements Plugin<Project> { def oFR = project.task('openFregeRepl', type: FregeReplTask, group: 'Runtime', dependsOn: 'classes') oFR.outputs.upToDateWhen { false } + + project.task('fregeRepl', type: ReplTask) + project.task('fregeNativeGen', type: NativeGenTask) + } } diff --git a/src/main/groovy/org/gradle/frege/FregePluginExtension.groovy b/src/main/groovy/frege/gradle/FregePluginExtension.groovy index db81a41..dbf0d2a 100644 --- a/src/main/groovy/org/gradle/frege/FregePluginExtension.groovy +++ b/src/main/groovy/frege/gradle/FregePluginExtension.groovy @@ -1,4 +1,4 @@ -package org.gradle.frege +package frege.gradle /** * Created by mperry on 6/02/2015. diff --git a/src/main/groovy/org/gradle/frege/FregeTask.groovy b/src/main/groovy/frege/gradle/FregeTask.groovy index df4f7d6..fc3152d 100644 --- a/src/main/groovy/org/gradle/frege/FregeTask.groovy +++ b/src/main/groovy/frege/gradle/FregeTask.groovy @@ -1,4 +1,4 @@ -package org.gradle.frege +package frege.gradle import org.gradle.api.DefaultTask import org.gradle.api.tasks.* @@ -37,17 +37,13 @@ class FregeTask extends DefaultTask { String module = "" @Optional @InputDirectory - File sourceDir = new File(project.projectDir, DEFAULT_SRC_DIR) + File sourceDir = new File(project.projectDir, DEFAULT_SRC_DIR).exists() ? new File(project.projectDir, DEFAULT_SRC_DIR) : null @Optional @OutputDirectory File outputDir = new File(project.buildDir, DEFAULT_CLASSES_SUBDIR) @TaskAction void executeCompile() { - - if (! sourceDir.exists() ) { - throw new StopActionException("Source directory '${sourceDir.absolutePath}' does not exist. Cannot compile Frege code.") - } if (! outputDir.exists() ) { logger.info "Creating output directory '${outputDir.absolutePath}'." outputDir.mkdirs() @@ -80,15 +76,20 @@ class FregeTask extends DefaultTask { if (skipCompile) args << "-j" - args << "-sp" - args << sourceDir.absolutePath + if (sourceDir != null) { + args << "-sp" + args << sourceDir.absolutePath + } args << "-d" args << outputDir if (!module && !extraArgs) { logger.info "no module and no extra args given: compiling all of the sourceDir" - args << sourceDir.absolutePath + if (sourceDir != null) { + args << sourceDir.absolutePath + } + } else if (module) { logger.info "compiling module '$module'" args << module diff --git a/src/main/groovy/frege/gradle/NativeGenTask.groovy b/src/main/groovy/frege/gradle/NativeGenTask.groovy new file mode 100644 index 0000000..6c8acc4 --- /dev/null +++ b/src/main/groovy/frege/gradle/NativeGenTask.groovy @@ -0,0 +1,25 @@ +package frege.gradle + +import org.gradle.api.DefaultTask +import org.gradle.api.tasks.TaskAction + +import frege.nativegen.* + +/** + * Created by MarkPerry on 18/02/2015. + */ +class NativeGenTask extends DefaultTask { + + String filename = "types.properties" + + String clazz = null + + + @TaskAction + void gen() { + + frege.nativegen.Main.main([clazz] as String[]) + } + + +} diff --git a/src/main/groovy/frege/gradle/ReplTask.groovy b/src/main/groovy/frege/gradle/ReplTask.groovy new file mode 100644 index 0000000..eb47944 --- /dev/null +++ b/src/main/groovy/frege/gradle/ReplTask.groovy @@ -0,0 +1,16 @@ +package frege.gradle + +import frege.repl.* +import org.gradle.api.DefaultTask +import org.gradle.api.tasks.TaskAction + +/** + * Created by MarkPerry on 17/02/2015. + */ +public class ReplTask extends DefaultTask { + + @TaskAction + void repl() { + frege.repl.FregeRepl.main([] as String[]) + } +} |