package com.prezi.haxe.gradle; import com.prezi.haxe.gradle.incubating.BinaryContainer; import com.prezi.haxe.gradle.nodetest.HaxeNodeTestCompile; import org.gradle.api.Action; import org.gradle.api.Plugin; import org.gradle.api.Project; public class HaxePlugin implements Plugin<Project> { @Override public void apply(final Project project) { project.getPlugins().apply(HaxeBasePlugin.class); BinaryContainer binaryContainer = project.getExtensions().getByType(HaxeExtension.class).getBinaries(); // Add a compile, source and munit task for each compiled binary binaryContainer.withType(HaxeBinary.class).all(new Action<HaxeBinary>() { public void execute(HaxeBinary binary) { HaxeBasePlugin.createCompileTask(project, binary, HaxeCompile.class); HaxeBasePlugin.createSourceTask(project, binary, Har.class); } }); binaryContainer.withType(HaxeTestBinary.class).all(new Action<HaxeTestBinary>() { @Override public void execute(HaxeTestBinary binary) { HaxeBasePlugin.createTestCompileTask(project, binary, HaxeTestCompile.class); HaxeBasePlugin.createSourceTask(project, binary, Har.class); HaxeBasePlugin.createMUnitTask(project, binary, MUnit.class); } }); } }