1
0
Fork 0
mirror of https://github.com/ethauvin/kobalt.git synced 2025-04-27 00:38:11 -07:00

Fix tasks.

This commit is contained in:
Cedric Beust 2015-12-06 11:32:42 -08:00
parent 371929f754
commit fc58dd208c
8 changed files with 17 additions and 15 deletions

View file

@ -90,10 +90,11 @@ public class Plugins @Inject constructor (val taskManagerProvider : Provider<Tas
currentClass = currentClass.superclass currentClass = currentClass.superclass
} }
// Collect all the tasks from the task contributors }
context.pluginInfo.taskContributors.forEach {
taskManager.dynamicTasks.addAll(it.tasksFor(context).map { TaskManager.PluginDynamicTask(plugin, it) }) // Collect all the tasks from the task contributors
} context.pluginInfo.taskContributors.forEach {
taskManager.dynamicTasks.addAll(it.tasksFor(context).map { TaskManager.PluginDynamicTask(it.plugin, it) })
} }
// Now that we have collected all static and dynamic tasks, turn them all into plug-in tasks // Now that we have collected all static and dynamic tasks, turn them all into plug-in tasks

View file

@ -10,7 +10,7 @@ interface ITaskContributor : IContributor {
fun tasksFor(context: KobaltContext) : List<DynamicTask> fun tasksFor(context: KobaltContext) : List<DynamicTask>
} }
class DynamicTask(val name: String, val description: String = "", class DynamicTask(val plugin: IPlugin, val name: String, val description: String = "",
val runBefore: List<String> = listOf<String>(), val runBefore: List<String> = listOf<String>(),
val runAfter: List<String> = listOf<String>(), val runAfter: List<String> = listOf<String>(),
val alwaysRunAfter: List<String> = listOf<String>(), val alwaysRunAfter: List<String> = listOf<String>(),

View file

@ -14,13 +14,13 @@ class TaskContributor : ITaskContributor {
* Register dynamic tasks corresponding to the variants found in the project,e.g. assembleDevDebug, * Register dynamic tasks corresponding to the variants found in the project,e.g. assembleDevDebug,
* assembleDevRelease, etc... * assembleDevRelease, etc...
*/ */
fun addVariantTasks(project: Project, context: KobaltContext, taskName: String, fun addVariantTasks(plugin: IPlugin, project: Project, context: KobaltContext, taskName: String,
runBefore : List<String> = emptyList(), runBefore : List<String> = emptyList(),
runAfter : List<String> = emptyList(), runAfter : List<String> = emptyList(),
runTask: (Project) -> TaskResult) { runTask: (Project) -> TaskResult) {
Variant.allVariants(project).forEach { variant -> Variant.allVariants(project).forEach { variant ->
val variantTaskName = variant.toTask(taskName) val variantTaskName = variant.toTask(taskName)
dynamicTasks.add(DynamicTask(variantTaskName, variantTaskName, dynamicTasks.add(DynamicTask(plugin, variantTaskName, variantTaskName,
runBefore = runBefore.map { variant.toTask(it) }, runBefore = runBefore.map { variant.toTask(it) },
runAfter = runAfter.map { variant.toTask(it) }, runAfter = runAfter.map { variant.toTask(it) },
closure = { p: Project -> closure = { p: Project ->

View file

@ -60,7 +60,7 @@ abstract class JvmCompilerPlugin @Inject constructor(
override fun apply(project: Project, context: KobaltContext) { override fun apply(project: Project, context: KobaltContext) {
super.apply(project, context) super.apply(project, context)
project.projectProperties.put(DEPENDENT_PROJECTS, projects()) 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", @Task(name = TASK_TEST, description = "Run the tests",

View file

@ -137,6 +137,7 @@ class PluginInfo(val xml: KobaltPluginXml, val classLoader: ClassLoader?) {
if (this is IRunnerContributor) runnerContributors.add(this) if (this is IRunnerContributor) runnerContributors.add(this)
if (this is ISourceDirectoryContributor) sourceDirContributors.add(this) if (this is ISourceDirectoryContributor) sourceDirContributors.add(this)
if (this is ISourceDirectoryIncerceptor) sourceDirectoriesInterceptors.add(this) if (this is ISourceDirectoryIncerceptor) sourceDirectoriesInterceptors.add(this)
if (this is ITaskContributor) taskContributors.add(this)
if (this is ITestRunnerContributor) testRunnerContributors.add(this) if (this is ITestRunnerContributor) testRunnerContributors.add(this)
// Not documented yet // Not documented yet

View file

@ -42,17 +42,17 @@ public class AndroidPlugin @Inject constructor(val javaCompiler: JavaCompiler, v
if (accept(project)) { if (accept(project)) {
project.compileDependencies.add(FileDependency(androidJar(project).toString())) 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) }) runTask = { taskGenerateRFile(project) })
taskContributor.addVariantTasks(project, context, "generateDex", runAfter = listOf("compile"), taskContributor.addVariantTasks(this, project, context, "generateDex", runAfter = listOf("compile"),
runBefore = listOf("assemble"), runBefore = listOf("assemble"),
runTask = { taskGenerateDex(project) }) runTask = { taskGenerateDex(project) })
taskContributor.addVariantTasks(project, context, "signApk", runAfter = listOf("generateDex"), taskContributor.addVariantTasks(this, project, context, "signApk", runAfter = listOf("generateDex"),
runBefore = listOf("assemble"), runBefore = listOf("assemble"),
runTask = { taskSignApk(project) }) runTask = { taskSignApk(project) })
taskContributor.addVariantTasks(project, context, "install", runAfter = listOf("signApk"), taskContributor.addVariantTasks(this, project, context, "install", runAfter = listOf("signApk"),
runTask = { taskInstall(project) }) runTask = { taskInstall(project) })
taskContributor.addVariantTasks(project, context, "proguard", runBefore = listOf("install"), taskContributor.addVariantTasks(this, project, context, "proguard", runBefore = listOf("install"),
runAfter = listOf("compile"), runAfter = listOf("compile"),
runTask = { taskProguard(project) }) runTask = { taskProguard(project) })
} }

View file

@ -47,7 +47,7 @@ class ApplicationPlugin @Inject constructor(val executors: KobaltExecutors,
override fun apply(project: Project, context: KobaltContext) { override fun apply(project: Project, context: KobaltContext) {
super.apply(project, context) super.apply(project, context)
taskContributor.addVariantTasks(project, context, "run", runAfter = listOf("install"), taskContributor.addVariantTasks(this, project, context, "run", runAfter = listOf("install"),
runTask = { taskRun(project) }) runTask = { taskRun(project) })
} }

View file

@ -56,7 +56,7 @@ class PackagingPlugin @Inject constructor(val dependencyManager : DependencyMana
override fun apply(project: Project, context: KobaltContext) { override fun apply(project: Project, context: KobaltContext) {
super.apply(project, context) super.apply(project, context)
project.projectProperties.put(LIBS_DIR, libsDir(project)) 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) }) runTask = { taskAssemble(project) })
} }