From fc58dd208c33056967bf08aa9f0fe79cc6249798 Mon Sep 17 00:00:00 2001 From: Cedric Beust Date: Sun, 6 Dec 2015 11:32:42 -0800 Subject: [PATCH] Fix tasks. --- src/main/kotlin/com/beust/kobalt/Plugins.kt | 9 +++++---- .../kotlin/com/beust/kobalt/api/ITaskContributor.kt | 2 +- .../kotlin/com/beust/kobalt/api/TaskContributor.kt | 4 ++-- .../com/beust/kobalt/internal/JvmCompilerPlugin.kt | 2 +- .../com/beust/kobalt/internal/KobaltPluginXml.kt | 1 + .../com/beust/kobalt/plugin/android/AndroidPlugin.kt | 10 +++++----- .../kobalt/plugin/application/ApplicationPlugin.kt | 2 +- .../beust/kobalt/plugin/packaging/PackagingPlugin.kt | 2 +- 8 files changed, 17 insertions(+), 15 deletions(-) diff --git a/src/main/kotlin/com/beust/kobalt/Plugins.kt b/src/main/kotlin/com/beust/kobalt/Plugins.kt index d96b9a55..2de5cdc9 100644 --- a/src/main/kotlin/com/beust/kobalt/Plugins.kt +++ b/src/main/kotlin/com/beust/kobalt/Plugins.kt @@ -90,10 +90,11 @@ public class Plugins @Inject constructor (val taskManagerProvider : Provider } -class DynamicTask(val name: String, val description: String = "", +class DynamicTask(val plugin: IPlugin, val name: String, val description: String = "", val runBefore: List = listOf(), val runAfter: List = listOf(), val alwaysRunAfter: List = listOf(), diff --git a/src/main/kotlin/com/beust/kobalt/api/TaskContributor.kt b/src/main/kotlin/com/beust/kobalt/api/TaskContributor.kt index 8706fdd0..58d9350f 100644 --- a/src/main/kotlin/com/beust/kobalt/api/TaskContributor.kt +++ b/src/main/kotlin/com/beust/kobalt/api/TaskContributor.kt @@ -14,13 +14,13 @@ class TaskContributor : ITaskContributor { * Register dynamic tasks corresponding to the variants found in the project,e.g. assembleDevDebug, * assembleDevRelease, etc... */ - fun addVariantTasks(project: Project, context: KobaltContext, taskName: String, + fun addVariantTasks(plugin: IPlugin, project: Project, context: KobaltContext, taskName: String, runBefore : List = emptyList(), runAfter : List = emptyList(), runTask: (Project) -> TaskResult) { Variant.allVariants(project).forEach { variant -> val variantTaskName = variant.toTask(taskName) - dynamicTasks.add(DynamicTask(variantTaskName, variantTaskName, + dynamicTasks.add(DynamicTask(plugin, variantTaskName, variantTaskName, runBefore = runBefore.map { variant.toTask(it) }, runAfter = runAfter.map { variant.toTask(it) }, closure = { p: Project -> diff --git a/src/main/kotlin/com/beust/kobalt/internal/JvmCompilerPlugin.kt b/src/main/kotlin/com/beust/kobalt/internal/JvmCompilerPlugin.kt index bf77bace..2d620580 100644 --- a/src/main/kotlin/com/beust/kobalt/internal/JvmCompilerPlugin.kt +++ b/src/main/kotlin/com/beust/kobalt/internal/JvmCompilerPlugin.kt @@ -60,7 +60,7 @@ abstract class JvmCompilerPlugin @Inject constructor( override fun apply(project: Project, context: KobaltContext) { super.apply(project, context) project.projectProperties.put(DEPENDENT_PROJECTS, projects()) - taskContributor.addVariantTasks(project, context, "compile", runTask = { taskCompile(project) }) + taskContributor.addVariantTasks(this, project, context, "compile", runTask = { taskCompile(project) }) } @Task(name = TASK_TEST, description = "Run the tests", diff --git a/src/main/kotlin/com/beust/kobalt/internal/KobaltPluginXml.kt b/src/main/kotlin/com/beust/kobalt/internal/KobaltPluginXml.kt index 6665efa2..1c51d13d 100644 --- a/src/main/kotlin/com/beust/kobalt/internal/KobaltPluginXml.kt +++ b/src/main/kotlin/com/beust/kobalt/internal/KobaltPluginXml.kt @@ -137,6 +137,7 @@ class PluginInfo(val xml: KobaltPluginXml, val classLoader: ClassLoader?) { if (this is IRunnerContributor) runnerContributors.add(this) if (this is ISourceDirectoryContributor) sourceDirContributors.add(this) if (this is ISourceDirectoryIncerceptor) sourceDirectoriesInterceptors.add(this) + if (this is ITaskContributor) taskContributors.add(this) if (this is ITestRunnerContributor) testRunnerContributors.add(this) // Not documented yet diff --git a/src/main/kotlin/com/beust/kobalt/plugin/android/AndroidPlugin.kt b/src/main/kotlin/com/beust/kobalt/plugin/android/AndroidPlugin.kt index de11a47b..8e860c24 100644 --- a/src/main/kotlin/com/beust/kobalt/plugin/android/AndroidPlugin.kt +++ b/src/main/kotlin/com/beust/kobalt/plugin/android/AndroidPlugin.kt @@ -42,17 +42,17 @@ public class AndroidPlugin @Inject constructor(val javaCompiler: JavaCompiler, v if (accept(project)) { project.compileDependencies.add(FileDependency(androidJar(project).toString())) - taskContributor.addVariantTasks(project, context, "generateR", runBefore = listOf("compile"), + taskContributor.addVariantTasks(this, project, context, "generateR", runBefore = listOf("compile"), runTask = { taskGenerateRFile(project) }) - taskContributor.addVariantTasks(project, context, "generateDex", runAfter = listOf("compile"), + taskContributor.addVariantTasks(this, project, context, "generateDex", runAfter = listOf("compile"), runBefore = listOf("assemble"), runTask = { taskGenerateDex(project) }) - taskContributor.addVariantTasks(project, context, "signApk", runAfter = listOf("generateDex"), + taskContributor.addVariantTasks(this, project, context, "signApk", runAfter = listOf("generateDex"), runBefore = listOf("assemble"), runTask = { taskSignApk(project) }) - taskContributor.addVariantTasks(project, context, "install", runAfter = listOf("signApk"), + taskContributor.addVariantTasks(this, project, context, "install", runAfter = listOf("signApk"), runTask = { taskInstall(project) }) - taskContributor.addVariantTasks(project, context, "proguard", runBefore = listOf("install"), + taskContributor.addVariantTasks(this, project, context, "proguard", runBefore = listOf("install"), runAfter = listOf("compile"), runTask = { taskProguard(project) }) } diff --git a/src/main/kotlin/com/beust/kobalt/plugin/application/ApplicationPlugin.kt b/src/main/kotlin/com/beust/kobalt/plugin/application/ApplicationPlugin.kt index 04654f00..4134aa87 100644 --- a/src/main/kotlin/com/beust/kobalt/plugin/application/ApplicationPlugin.kt +++ b/src/main/kotlin/com/beust/kobalt/plugin/application/ApplicationPlugin.kt @@ -47,7 +47,7 @@ class ApplicationPlugin @Inject constructor(val executors: KobaltExecutors, override fun apply(project: Project, context: KobaltContext) { super.apply(project, context) - taskContributor.addVariantTasks(project, context, "run", runAfter = listOf("install"), + taskContributor.addVariantTasks(this, project, context, "run", runAfter = listOf("install"), runTask = { taskRun(project) }) } diff --git a/src/main/kotlin/com/beust/kobalt/plugin/packaging/PackagingPlugin.kt b/src/main/kotlin/com/beust/kobalt/plugin/packaging/PackagingPlugin.kt index c07d72ae..d0ebbb43 100644 --- a/src/main/kotlin/com/beust/kobalt/plugin/packaging/PackagingPlugin.kt +++ b/src/main/kotlin/com/beust/kobalt/plugin/packaging/PackagingPlugin.kt @@ -56,7 +56,7 @@ class PackagingPlugin @Inject constructor(val dependencyManager : DependencyMana override fun apply(project: Project, context: KobaltContext) { super.apply(project, context) project.projectProperties.put(LIBS_DIR, libsDir(project)) - taskContributor.addVariantTasks(project, context, "assemble", runAfter = listOf("compile"), + taskContributor.addVariantTasks(this, project, context, "assemble", runAfter = listOf("compile"), runTask = { taskAssemble(project) }) }