summaryrefslogtreecommitdiff
path: root/src/main/groovy
diff options
context:
space:
mode:
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.groovy25
-rw-r--r--src/main/groovy/frege/gradle/ReplTask.groovy16
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[])
+ }
+}