
= 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.

== 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.5"
  }
}

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.5"
}
```

== 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.
