
= Frege Gradle Plugin

This is the official Gradle plugin to compile Frege projects (https://github.com/Frege/frege).  See the example project (https://github.com/mperry/frege-gradle-example) for examples on the usage of this plugin.

This plugin is an alternative to using Gradle's JavaEx task to start the Frege tools.
Those who prefer the latter might want to have a look at (https://github.com/Dierk/HelloFrege)

== Plugin Application

The gradle plugin portal page for Frege documents how to apply the Frege plugin (https://plugins.gradle.org/plugin/org.frege-lang).

For applying the plugin in all Gradle versions use:
```
buildscript {
  repositories {
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
  dependencies {
    classpath "gradle.plugin.org.frege-lang:frege-gradle-plugin:0.8"
  }
}

apply plugin: "org.frege-lang"
```

To apply the plugin using the new incubating, plugin mechanism (since Gradle 2.1), add:
```
plugins {
  id "org.frege-lang" version "0.8"
}
```

== Tasks

This plugin creates the following tasks:

* fregeRepl
* fregeQuickCheck
* fregeDoc
* fregeNativeGen
* compileFrege
* compileTestFrege

The plugin adds dependencies so that using the `build` task is typically all that is required to invoke the `compileFrege` and `compileTestFrege` tasks.  These task dependencies include:

* classes -> compileFrege -> compileJava
* testClasses -> compileTestFrege -> compileTestJava
* test -> fregeQuickCheck -> testClasses

== Task Help

TODO: Add options and descriptions for each task above.

== Example

See:

* Plugin application: https://plugins.gradle.org/plugin/org.frege-lang
* Plugin usage: https://github.com/mperry/frege-gradle-example

== Continuous Integration

The Travis CI build of this repository is at https://travis-ci.org/Frege/frege-gradle-plugin.

== Snapshots

Snapshot releases are available from the Sonatype repository at https://oss.sonatype.org/content/groups/public/org/frege-lang.
