From 1fa4874426073cad3f6e3ec8c4953cd1df51e8ee Mon Sep 17 00:00:00 2001 From: Nikita Bobko Date: Wed, 28 Apr 2021 15:17:20 +0200 Subject: [PATCH] Create 'installIdeArtifacts' task This task is used for cooperative compilation with intellij. See 'Install compiler-for-ide jars' run configuration in intellij/kotlin-ide/intellij-kotlin repo --- build.gradle.kts | 68 ++++++++++++++++++++++++++---------------------- 1 file changed, 37 insertions(+), 31 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index aa226eb7056..5aa8f9cbf80 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -326,6 +326,37 @@ extra["compilerModulesForJps"] = listOf( ":compiler:compiler.version" ) +extra["compilerArtifactsForIde"] = listOf( + ":prepare:ide-plugin-dependencies:android-extensions-compiler-plugin-for-ide", + ":prepare:ide-plugin-dependencies:allopen-compiler-plugin-for-ide", + ":prepare:ide-plugin-dependencies:incremental-compilation-impl-tests-for-ide", + ":prepare:ide-plugin-dependencies:js-ir-runtime-for-ide", + ":prepare:ide-plugin-dependencies:kotlin-build-common-tests-for-ide", + ":prepare:ide-plugin-dependencies:kotlin-compiler-for-ide", + ":prepare:ide-plugin-dependencies:kotlin-compiler-cli-for-ide", + ":prepare:ide-plugin-dependencies:kotlin-gradle-statistics-for-ide", + ":prepare:ide-plugin-dependencies:kotlinx-serialization-compiler-plugin-for-ide", + ":prepare:ide-plugin-dependencies:noarg-compiler-plugin-for-ide", + ":prepare:ide-plugin-dependencies:sam-with-receiver-compiler-plugin-for-ide", + ":prepare:ide-plugin-dependencies:compiler-components-for-jps", + ":prepare:ide-plugin-dependencies:parcelize-compiler-plugin-for-ide", + ":prepare:ide-plugin-dependencies:lombok-compiler-plugin-for-ide", + ":prepare:ide-plugin-dependencies:kotlin-compiler-tests-for-ide", + ":kotlin-script-runtime", + ":kotlin-script-util", + ":kotlin-scripting-common", + ":kotlin-scripting-jvm", + ":kotlin-scripting-compiler", + ":kotlin-scripting-compiler-impl", + ":kotlin-android-extensions-runtime", + ":kotlin-stdlib-common", + ":kotlin-stdlib", + ":kotlin-stdlib-jdk7", + ":kotlin-stdlib-jdk8", + ":kotlin-reflect", + ":kotlin-main-kts" +) + // TODO: fix remaining warnings and remove this property. extra["tasksWithWarnings"] = listOf( ":kotlin-stdlib:compileTestKotlin", @@ -960,38 +991,13 @@ tasks { register("publishIdeArtifacts") { idePluginDependency { - val projectsToPublish = listOf( - ":prepare:ide-plugin-dependencies:android-extensions-compiler-plugin-for-ide", - ":prepare:ide-plugin-dependencies:allopen-compiler-plugin-for-ide", - ":prepare:ide-plugin-dependencies:incremental-compilation-impl-tests-for-ide", - ":prepare:ide-plugin-dependencies:js-ir-runtime-for-ide", - ":prepare:ide-plugin-dependencies:kotlin-build-common-tests-for-ide", - ":prepare:ide-plugin-dependencies:kotlin-compiler-for-ide", - ":prepare:ide-plugin-dependencies:kotlin-compiler-cli-for-ide", - ":prepare:ide-plugin-dependencies:kotlin-gradle-statistics-for-ide", - ":prepare:ide-plugin-dependencies:kotlinx-serialization-compiler-plugin-for-ide", - ":prepare:ide-plugin-dependencies:noarg-compiler-plugin-for-ide", - ":prepare:ide-plugin-dependencies:sam-with-receiver-compiler-plugin-for-ide", - ":prepare:ide-plugin-dependencies:compiler-components-for-jps", - ":prepare:ide-plugin-dependencies:parcelize-compiler-plugin-for-ide", - ":prepare:ide-plugin-dependencies:lombok-compiler-plugin-for-ide", - ":prepare:ide-plugin-dependencies:kotlin-compiler-tests-for-ide", - ":kotlin-script-runtime", - ":kotlin-script-util", - ":kotlin-scripting-common", - ":kotlin-scripting-jvm", - ":kotlin-scripting-compiler", - ":kotlin-scripting-compiler-impl", - ":kotlin-android-extensions-runtime", - ":kotlin-stdlib-common", - ":kotlin-stdlib", - ":kotlin-stdlib-jdk7", - ":kotlin-stdlib-jdk8", - ":kotlin-reflect", - ":kotlin-main-kts" - ) + dependsOn((rootProject.extra["compilerArtifactsForIde"] as List).map { "$it:publish" }) + } + } - dependsOn(projectsToPublish.map { "$it:publish" }) + register("installIdeArtifacts") { + idePluginDependency { + dependsOn((rootProject.extra["compilerArtifactsForIde"] as List).map { "$it:install" }) } } }