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)
|
||||
|
||||
|
||||
fun AbstractTask.dependsOnTaskIfExists(task: String) {
|
||||
fun AbstractTask.dependsOnTaskIfExists(task: String, project: Project?, parentProject: Project?) {
|
||||
val thisTask = this
|
||||
project.afterEvaluate {
|
||||
project.tasks.firstOrNull { it.name == task }?.let { thisTask.dependsOn(it) }
|
||||
val p = project ?: this.project
|
||||
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) {
|
||||
dependsOnTaskIfExists(task)
|
||||
fun AbstractTask.dependsOnTaskIfExistsRec(task: String, project: Project? = null, parentProject: Project? = null) {
|
||||
dependsOnTaskIfExists(task, project, parentProject)
|
||||
(project ?: this.project).subprojects.forEach {
|
||||
dependsOnTaskIfExistsRec(task, it)
|
||||
dependsOnTaskIfExistsRec(task, it, this.project)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user