Select Git revision
RelastPlugin.java
RelastPlugin.java 1.23 KiB
package org.jastadd.relast.plugin;
import org.gradle.api.Plugin;
import org.gradle.api.Project;
import org.gradle.api.Task;
import org.gradle.api.tasks.TaskCollection;
import java.util.Set;
/**
* Plugin for RelAst-Test.
*
* @author rschoene - Initial contribution
*/
public class RelastPlugin implements Plugin<Project> {
private Task testTask;
@Override
public void apply(Project project) {
CompilerLocationExtension extension = project.getExtensions().create(
"relastTest",
CompilerLocationExtension.class,
project);
Set<Task> tasks = project.getTasksByName("test", false);
// there should be only one task "test"
testTask = tasks.iterator().next();
TaskCollection<RelastTest> relastTests = project.getTasks().withType(RelastTest.class);
relastTests.forEach(relastTest -> setupRelastTest(relastTest, extension.getCompilerLocation().getOrNull()));
relastTests.whenTaskAdded(relastTest -> setupRelastTest(relastTest, extension.getCompilerLocation().getOrNull()));
}
private void setupRelastTest(RelastTest relastTest, String compilerLocation) {
testTask.dependsOn(relastTest);
relastTest.setCompilerLocation(compilerLocation);
relastTest.setGroup("verification");
}
}