Fix recursive task dependency helpers
This commit is contained in:
@@ -12,17 +12,23 @@ import java.io.File
|
|||||||
inline fun <reified T : Task> Project.task(noinline configuration: T.() -> Unit) = tasks.creating(T::class, configuration)
|
inline fun <reified T : Task> Project.task(noinline configuration: T.() -> Unit) = tasks.creating(T::class, configuration)
|
||||||
|
|
||||||
|
|
||||||
fun AbstractTask.dependsOnTaskIfExists(task: String) {
|
fun AbstractTask.dependsOnTaskIfExists(task: String, project: Project?, parentProject: Project?) {
|
||||||
val thisTask = this
|
val thisTask = this
|
||||||
project.afterEvaluate {
|
val p = project ?: this.project
|
||||||
project.tasks.firstOrNull { it.name == task }?.let { thisTask.dependsOn(it) }
|
p.afterEvaluate {
|
||||||
|
p.tasks.firstOrNull { it.name == task }?.also {
|
||||||
|
if (parentProject != null) {
|
||||||
|
parentProject.evaluationDependsOn(p.path)
|
||||||
|
}
|
||||||
|
thisTask.dependsOn(it)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun AbstractTask.dependsOnTaskIfExistsRec(task: String, project: Project? = null) {
|
fun AbstractTask.dependsOnTaskIfExistsRec(task: String, project: Project? = null, parentProject: Project? = null) {
|
||||||
dependsOnTaskIfExists(task)
|
dependsOnTaskIfExists(task, project, parentProject)
|
||||||
(project ?: this.project).subprojects.forEach {
|
(project ?: this.project).subprojects.forEach {
|
||||||
dependsOnTaskIfExistsRec(task, it)
|
dependsOnTaskIfExistsRec(task, it, this.project)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user