From 555e9674b2de4d329f5c90f0738ee1786d64c25d Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Tue, 16 Jan 2018 12:49:12 +0100 Subject: [PATCH] Fix dependencies to the cross-project tasks --- build.gradle.kts | 3 +-- buildSrc/src/main/kotlin/CommonUtil.kt | 20 ------------------- compiler/container/build.gradle.kts | 2 +- compiler/tests-java8/build.gradle.kts | 2 +- eval4j/build.gradle.kts | 2 +- idea-runner/build.gradle.kts | 2 +- idea/build.gradle.kts | 2 +- j2k/build.gradle.kts | 2 +- .../build.gradle.kts | 2 +- plugins/kapt3/kapt3-compiler/build.gradle.kts | 2 +- ultimate/build.gradle.kts | 2 +- ultimate/ultimate-runner/build.gradle.kts | 2 +- 12 files changed, 11 insertions(+), 32 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 596f3f95673..f22c545722d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -355,14 +355,13 @@ task("dist") { } val compilerCopyTask = task("idea-plugin-copy-compiler") { - dependsOnTaskIfExistsRec("dist") + shouldRunAfter(":dist") into(ideaPluginDir) from(distDir) { include("kotlinc/**") } } task("ideaPlugin") { dependsOn(compilerCopyTask) - dependsOnTaskIfExistsRec("idea-plugin") shouldRunAfter(":prepare:idea-plugin:idea-plugin") into("$ideaPluginDir/lib") } diff --git a/buildSrc/src/main/kotlin/CommonUtil.kt b/buildSrc/src/main/kotlin/CommonUtil.kt index 49f8fa267b4..45c2df70812 100644 --- a/buildSrc/src/main/kotlin/CommonUtil.kt +++ b/buildSrc/src/main/kotlin/CommonUtil.kt @@ -20,26 +20,6 @@ fun Project.callGroovy(name: String, vararg args: Any?): Any? { return (property(name) as Closure<*>).call(*args) } -fun AbstractTask.dependsOnTaskIfExists(task: String, project: Project?, parentProject: Project?) { - val thisTask = this - 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, parentProject: Project? = null) { - dependsOnTaskIfExists(task, project, parentProject) - (project ?: this.project).subprojects.forEach { - dependsOnTaskIfExistsRec(task, it, this.project) - } -} - inline fun Project.withJavaPlugin(crossinline body: () -> T?): T? { var res: T? = null pluginManager.withPlugin("java") { diff --git a/compiler/container/build.gradle.kts b/compiler/container/build.gradle.kts index 13403aaa58c..ec2117ec4b2 100644 --- a/compiler/container/build.gradle.kts +++ b/compiler/container/build.gradle.kts @@ -24,7 +24,7 @@ sourceSets { testsJar {} projectTest { - dependsOnTaskIfExistsRec("dist", project = rootProject) + shouldRunAfter(":dist") dependsOn(":prepare:mock-runtime-for-test:dist") workingDir = rootDir } diff --git a/compiler/tests-java8/build.gradle.kts b/compiler/tests-java8/build.gradle.kts index f3e7827c184..5fba3e7bc1e 100644 --- a/compiler/tests-java8/build.gradle.kts +++ b/compiler/tests-java8/build.gradle.kts @@ -22,7 +22,7 @@ tasks.withType { projectTest { executable = "${rootProject.extra["JDK_18"]!!}/bin/java" - dependsOnTaskIfExistsRec("dist", project = rootProject) + shouldRunAfter(":dist") dependsOn(":prepare:mock-runtime-for-test:dist") workingDir = rootDir systemProperty("kotlin.test.script.classpath", the().sourceSets.getByName("test").output.classesDirs.joinToString(File.pathSeparator)) diff --git a/eval4j/build.gradle.kts b/eval4j/build.gradle.kts index dc2d63db4a1..daefe4e55c4 100644 --- a/eval4j/build.gradle.kts +++ b/eval4j/build.gradle.kts @@ -17,6 +17,6 @@ sourceSets { } projectTest { - dependsOnTaskIfExistsRec("dist", project = rootProject) + shouldRunAfter(":dist") workingDir = rootDir } diff --git a/idea-runner/build.gradle.kts b/idea-runner/build.gradle.kts index 1cebc9cca36..7771e337770 100644 --- a/idea-runner/build.gradle.kts +++ b/idea-runner/build.gradle.kts @@ -17,5 +17,5 @@ val ideaSandboxDir: File by rootProject.extra runIdeTask("runIde", ideaPluginDir, ideaSandboxDir) { - dependsOn(":dist", ":prepare:idea-plugin:idea-plugin", ":ideaPlugin") + shouldRunAfter(":ideaPlugin") } diff --git a/idea/build.gradle.kts b/idea/build.gradle.kts index 4245bbd215f..910a28f22c1 100644 --- a/idea/build.gradle.kts +++ b/idea/build.gradle.kts @@ -116,7 +116,7 @@ sourceSets { } projectTest { - dependsOnTaskIfExistsRec("dist", project = rootProject) + shouldRunAfter(":dist") workingDir = rootDir doFirst { systemProperty("idea.home.path", intellijRootDir().canonicalPath) diff --git a/j2k/build.gradle.kts b/j2k/build.gradle.kts index 132e73c5064..e28fa0da78b 100644 --- a/j2k/build.gradle.kts +++ b/j2k/build.gradle.kts @@ -47,7 +47,7 @@ sourceSets { } projectTest { - dependsOnTaskIfExistsRec("dist", project = rootProject) + shouldRunAfter(":dist") workingDir = rootDir doFirst { systemProperty("idea.home.path", intellijRootDir().canonicalPath) diff --git a/plugins/android-extensions/android-extensions-compiler/build.gradle.kts b/plugins/android-extensions/android-extensions-compiler/build.gradle.kts index cc98080e6b8..1a7cdffbcef 100644 --- a/plugins/android-extensions/android-extensions-compiler/build.gradle.kts +++ b/plugins/android-extensions/android-extensions-compiler/build.gradle.kts @@ -52,7 +52,7 @@ evaluationDependsOn(":kotlin-android-extensions-runtime") projectTest { environment("ANDROID_EXTENSIONS_RUNTIME_CLASSES", getSourceSetsFrom(":kotlin-android-extensions-runtime")["main"].output.classesDirs.asPath) - dependsOnTaskIfExistsRec("dist", project = rootProject) + shouldRunAfter(":dist") workingDir = rootDir doFirst { val androidPluginPath = File(intellijRootDir(), "plugins/android").canonicalPath diff --git a/plugins/kapt3/kapt3-compiler/build.gradle.kts b/plugins/kapt3/kapt3-compiler/build.gradle.kts index d25235185d5..1e7e3de918e 100644 --- a/plugins/kapt3/kapt3-compiler/build.gradle.kts +++ b/plugins/kapt3/kapt3-compiler/build.gradle.kts @@ -37,7 +37,7 @@ testsJar {} projectTest { workingDir = rootDir - dependsOnTaskIfExistsRec("dist", project = rootProject) + shouldRunAfter(":dist") } runtimeJar() diff --git a/ultimate/build.gradle.kts b/ultimate/build.gradle.kts index 0b315c22271..51b47bdcae2 100644 --- a/ultimate/build.gradle.kts +++ b/ultimate/build.gradle.kts @@ -177,7 +177,7 @@ val ideaUltimatePluginDir: File by rootProject.extra task("ideaUltimatePlugin") { dependsOn("$communityPluginProject:ideaPlugin") - dependsOnTaskIfExistsRec("ideaPlugin", rootProject) + shouldRunAfter(":ideaPlugin") into(ideaUltimatePluginDir) from(ideaPluginDir) { exclude("lib/kotlin-plugin.jar") } from(jar, { into("lib") }) diff --git a/ultimate/ultimate-runner/build.gradle.kts b/ultimate/ultimate-runner/build.gradle.kts index 3a0e3967bbb..7ac8fb50f92 100644 --- a/ultimate/ultimate-runner/build.gradle.kts +++ b/ultimate/ultimate-runner/build.gradle.kts @@ -19,6 +19,6 @@ val ideaUltimateSandboxDir: File by rootProject.extra if (intellijUltimateEnabled) { runIdeTask("runUltimate", ideaUltimatePluginDir, ideaUltimateSandboxDir) { - dependsOn(":dist", ":prepare:idea-plugin:idea-plugin", ":ideaPlugin", ":ultimate:idea-ultimate-plugin") + shouldRunAfter(":ultimate:ideaUltimatePlugin") } }