From 066b6d830fb2e1c4a2817283809b9f0dccec7dcb Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Thu, 7 May 2020 20:08:43 +0900 Subject: [PATCH] Put IDE plugin dependency artifact building/publishing under a flag --- build.gradle.kts | 54 ++++++++++--------- buildSrc/src/main/kotlin/artifacts.kt | 7 +++ .../build.gradle.kts | 4 +- .../build.gradle.kts | 4 +- .../build.gradle.kts | 4 +- .../build.gradle.kts | 10 ++-- .../build.gradle.kts | 4 +- .../build.gradle.kts | 4 +- .../kotlin-compiler-for-ide/build.gradle.kts | 50 ++++++++--------- .../kotlin-dist-for-ide/build.gradle.kts | 20 +++---- .../build.gradle.kts | 4 +- .../build.gradle.kts | 4 +- .../build.gradle.kts | 4 +- .../build.gradle.kts | 4 +- .../build.gradle.kts | 4 +- 15 files changed, 108 insertions(+), 73 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index b4d1bc16cbd..bb31ef14a93 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -753,32 +753,34 @@ tasks { } register("publishIdeArtifacts") { - dependsOn( - ":prepare:ide-artifacts:android-extensions-compiler-plugin-for-ide:publish", - ":prepare:ide-artifacts:allopen-compiler-plugin-for-ide:publish", - ":prepare:ide-artifacts:allopen-compiler-plugin-tests-for-ide:publish", - ":prepare:ide-artifacts:incremental-compilation-impl-tests-for-ide:publish", - ":prepare:ide-artifacts:kotlin-build-common-tests-for-ide:publish", - ":prepare:ide-artifacts:kotlin-compiler-for-ide:publish", - ":prepare:ide-artifacts:kotlin-dist-for-ide:publish", - ":prepare:ide-artifacts:kotlin-gradle-statistics-for-ide:publish", - ":prepare:ide-artifacts:kotlinx-serialization-compiler-plugin-for-ide:publish", - ":prepare:ide-artifacts:noarg-compiler-plugin-for-ide:publish", - ":prepare:ide-artifacts:sam-with-receiver-compiler-plugin-for-ide:publish", - ":prepare:ide-artifacts:tests-common-tests-for-ide:publish", - ":prepare:ide-artifacts:compiler-components-for-jps:publish", - ":kotlin-script-runtime:publish", - ":kotlin-script-util:publish", - ":kotlin-scripting-common:publish", - ":kotlin-scripting-jvm:publish", - ":kotlin-scripting-compiler:publish", - ":kotlin-scripting-compiler-impl:publish", - ":kotlin-android-extensions-runtime:publish", - ":kotlin-stdlib:publish", - ":kotlin-stdlib-jdk7:publish", - ":kotlin-stdlib-jdk8:publish", - ":kotlin-reflect:publish" - ) + idePluginDependency { + dependsOn( + ":prepare:ide-artifacts:android-extensions-compiler-plugin-for-ide:publish", + ":prepare:ide-artifacts:allopen-compiler-plugin-for-ide:publish", + ":prepare:ide-artifacts:allopen-compiler-plugin-tests-for-ide:publish", + ":prepare:ide-artifacts:incremental-compilation-impl-tests-for-ide:publish", + ":prepare:ide-artifacts:kotlin-build-common-tests-for-ide:publish", + ":prepare:ide-artifacts:kotlin-compiler-for-ide:publish", + ":prepare:ide-artifacts:kotlin-dist-for-ide:publish", + ":prepare:ide-artifacts:kotlin-gradle-statistics-for-ide:publish", + ":prepare:ide-artifacts:kotlinx-serialization-compiler-plugin-for-ide:publish", + ":prepare:ide-artifacts:noarg-compiler-plugin-for-ide:publish", + ":prepare:ide-artifacts:sam-with-receiver-compiler-plugin-for-ide:publish", + ":prepare:ide-artifacts:tests-common-tests-for-ide:publish", + ":prepare:ide-artifacts:compiler-components-for-jps:publish", + ":kotlin-script-runtime:publish", + ":kotlin-script-util:publish", + ":kotlin-scripting-common:publish", + ":kotlin-scripting-jvm:publish", + ":kotlin-scripting-compiler:publish", + ":kotlin-scripting-compiler-impl:publish", + ":kotlin-android-extensions-runtime:publish", + ":kotlin-stdlib:publish", + ":kotlin-stdlib-jdk7:publish", + ":kotlin-stdlib-jdk8:publish", + ":kotlin-reflect:publish" + ) + } } register("test") { diff --git a/buildSrc/src/main/kotlin/artifacts.kt b/buildSrc/src/main/kotlin/artifacts.kt index 2b340ac25ad..dcca7c4f0ea 100644 --- a/buildSrc/src/main/kotlin/artifacts.kt +++ b/buildSrc/src/main/kotlin/artifacts.kt @@ -157,6 +157,13 @@ fun Project.publish(body: Upload.() -> Unit = {}): Upload { } } +fun Project.idePluginDependency(block: () -> Unit) { + val shouldActivate = rootProject.findProperty("publish.ide.plugin.dependencies")?.toString()?.toBoolean() == true + if (shouldActivate) { + block() + } +} + fun Project.publishProjectJars(projects: List, libraryDependencies: List = emptyList()) { apply() diff --git a/prepare/ide-artifacts/allopen-compiler-plugin-for-ide/build.gradle.kts b/prepare/ide-artifacts/allopen-compiler-plugin-for-ide/build.gradle.kts index 23180379109..4b231f1b50c 100644 --- a/prepare/ide-artifacts/allopen-compiler-plugin-for-ide/build.gradle.kts +++ b/prepare/ide-artifacts/allopen-compiler-plugin-for-ide/build.gradle.kts @@ -1 +1,3 @@ -publishProjectJars(listOf(":kotlin-allopen-compiler-plugin")) \ No newline at end of file +idePluginDependency { + publishProjectJars(listOf(":kotlin-allopen-compiler-plugin")) +} \ No newline at end of file diff --git a/prepare/ide-artifacts/allopen-compiler-plugin-tests-for-ide/build.gradle.kts b/prepare/ide-artifacts/allopen-compiler-plugin-tests-for-ide/build.gradle.kts index d64a5e6cea9..d557d3c3f0d 100644 --- a/prepare/ide-artifacts/allopen-compiler-plugin-tests-for-ide/build.gradle.kts +++ b/prepare/ide-artifacts/allopen-compiler-plugin-tests-for-ide/build.gradle.kts @@ -1 +1,3 @@ -publishTestJar(":compiler:incremental-compilation-impl") \ No newline at end of file +idePluginDependency { + publishTestJar(":compiler:incremental-compilation-impl") +} \ No newline at end of file diff --git a/prepare/ide-artifacts/android-extensions-compiler-plugin-for-ide/build.gradle.kts b/prepare/ide-artifacts/android-extensions-compiler-plugin-for-ide/build.gradle.kts index 6c009085720..c9c5faa5ffe 100644 --- a/prepare/ide-artifacts/android-extensions-compiler-plugin-for-ide/build.gradle.kts +++ b/prepare/ide-artifacts/android-extensions-compiler-plugin-for-ide/build.gradle.kts @@ -1 +1,3 @@ -publishProjectJars(listOf(":plugins:android-extensions-compiler")) \ No newline at end of file +idePluginDependency { + publishProjectJars(listOf(":plugins:android-extensions-compiler")) +} \ No newline at end of file diff --git a/prepare/ide-artifacts/compiler-components-for-jps/build.gradle.kts b/prepare/ide-artifacts/compiler-components-for-jps/build.gradle.kts index b7d931ef9a1..261b4a3833d 100644 --- a/prepare/ide-artifacts/compiler-components-for-jps/build.gradle.kts +++ b/prepare/ide-artifacts/compiler-components-for-jps/build.gradle.kts @@ -1,6 +1,8 @@ -@Suppress("UNCHECKED_CAST") -val compilerComponentProjects = project(":kotlin-jps-plugin").extra["compilerComponents"] as List +idePluginDependency { + @Suppress("UNCHECKED_CAST") + val compilerComponentProjects = project(":kotlin-jps-plugin").extra["compilerComponents"] as List -val otherProjects = listOf(":kotlin-daemon-client") + val otherProjects = listOf(":kotlin-daemon-client") -publishProjectJars(compilerComponentProjects + otherProjects) \ No newline at end of file + publishProjectJars(compilerComponentProjects + otherProjects) +} \ No newline at end of file diff --git a/prepare/ide-artifacts/incremental-compilation-impl-tests-for-ide/build.gradle.kts b/prepare/ide-artifacts/incremental-compilation-impl-tests-for-ide/build.gradle.kts index d64a5e6cea9..d557d3c3f0d 100644 --- a/prepare/ide-artifacts/incremental-compilation-impl-tests-for-ide/build.gradle.kts +++ b/prepare/ide-artifacts/incremental-compilation-impl-tests-for-ide/build.gradle.kts @@ -1 +1,3 @@ -publishTestJar(":compiler:incremental-compilation-impl") \ No newline at end of file +idePluginDependency { + publishTestJar(":compiler:incremental-compilation-impl") +} \ No newline at end of file diff --git a/prepare/ide-artifacts/kotlin-build-common-tests-for-ide/build.gradle.kts b/prepare/ide-artifacts/kotlin-build-common-tests-for-ide/build.gradle.kts index 6451f546258..36b79a5752d 100644 --- a/prepare/ide-artifacts/kotlin-build-common-tests-for-ide/build.gradle.kts +++ b/prepare/ide-artifacts/kotlin-build-common-tests-for-ide/build.gradle.kts @@ -1 +1,3 @@ -publishTestJar(":kotlin-build-common") \ No newline at end of file +idePluginDependency { + publishTestJar(":kotlin-build-common") +} \ No newline at end of file diff --git a/prepare/ide-artifacts/kotlin-compiler-for-ide/build.gradle.kts b/prepare/ide-artifacts/kotlin-compiler-for-ide/build.gradle.kts index bd27c1d06d4..97e4e0541b9 100644 --- a/prepare/ide-artifacts/kotlin-compiler-for-ide/build.gradle.kts +++ b/prepare/ide-artifacts/kotlin-compiler-for-ide/build.gradle.kts @@ -1,27 +1,29 @@ -val compilerModules: Array by rootProject.extra +idePluginDependency { + val compilerModules: Array by rootProject.extra -val excludedCompilerModules = listOf( - ":compiler:cli-js-klib", - ":compiler:javac-wrapper", - ":compiler:backend.js", - ":compiler:backend.wasm", - ":js:js.dce", - ":compiler:ir.serialization.js", - ":compiler:incremental-compilation-impl", - ":compiler:fir:raw-fir:light-tree2fir" -) + val excludedCompilerModules = listOf( + ":compiler:cli-js-klib", + ":compiler:javac-wrapper", + ":compiler:backend.js", + ":compiler:backend.wasm", + ":js:js.dce", + ":compiler:ir.serialization.js", + ":compiler:incremental-compilation-impl", + ":compiler:fir:raw-fir:light-tree2fir" + ) -val projects = compilerModules.asList() - excludedCompilerModules + listOf( - ":kotlin-compiler-runner", - ":kotlin-preloader", - ":daemon-common", - ":daemon-common-new", - ":kotlin-daemon", - ":kotlin-daemon-client", - ":kotlin-daemon-client-new" -) + val projects = compilerModules.asList() - excludedCompilerModules + listOf( + ":kotlin-compiler-runner", + ":kotlin-preloader", + ":daemon-common", + ":daemon-common-new", + ":kotlin-daemon", + ":kotlin-daemon-client", + ":kotlin-daemon-client-new" + ) -publishProjectJars( - projects = projects, - libraryDependencies = listOf(protobufFull()) -) \ No newline at end of file + publishProjectJars( + projects = projects, + libraryDependencies = listOf(protobufFull()) + ) +} \ No newline at end of file diff --git a/prepare/ide-artifacts/kotlin-dist-for-ide/build.gradle.kts b/prepare/ide-artifacts/kotlin-dist-for-ide/build.gradle.kts index 240cb98e31f..c2546b32311 100644 --- a/prepare/ide-artifacts/kotlin-dist-for-ide/build.gradle.kts +++ b/prepare/ide-artifacts/kotlin-dist-for-ide/build.gradle.kts @@ -2,17 +2,19 @@ plugins { java } -publish() +idePluginDependency { + publish() -val jar: Jar by tasks + val jar: Jar by tasks -jar.apply { - val distKotlincTask = project(":kotlin-compiler").tasks.getByName("distKotlinc") + jar.apply { + val distKotlincTask = project(":kotlin-compiler").tasks.getByName("distKotlinc") - dependsOn(distKotlincTask) - from(distKotlincTask) + dependsOn(distKotlincTask) + from(distKotlincTask) -} + } -sourcesJar() -javadocJar() \ No newline at end of file + sourcesJar() + javadocJar() +} \ No newline at end of file diff --git a/prepare/ide-artifacts/kotlin-gradle-statistics-for-ide/build.gradle.kts b/prepare/ide-artifacts/kotlin-gradle-statistics-for-ide/build.gradle.kts index 7c6fb1c99fe..1056cf4b9f7 100644 --- a/prepare/ide-artifacts/kotlin-gradle-statistics-for-ide/build.gradle.kts +++ b/prepare/ide-artifacts/kotlin-gradle-statistics-for-ide/build.gradle.kts @@ -1 +1,3 @@ -publishProjectJars(listOf(":kotlin-gradle-statistics")) \ No newline at end of file +idePluginDependency { + publishProjectJars(listOf(":kotlin-gradle-statistics")) +} \ No newline at end of file diff --git a/prepare/ide-artifacts/kotlinx-serialization-compiler-plugin-for-ide/build.gradle.kts b/prepare/ide-artifacts/kotlinx-serialization-compiler-plugin-for-ide/build.gradle.kts index b03f44031d0..27d89dbc80c 100644 --- a/prepare/ide-artifacts/kotlinx-serialization-compiler-plugin-for-ide/build.gradle.kts +++ b/prepare/ide-artifacts/kotlinx-serialization-compiler-plugin-for-ide/build.gradle.kts @@ -1 +1,3 @@ -publishProjectJars(listOf(":kotlinx-serialization-compiler-plugin")) \ No newline at end of file +idePluginDependency { + publishProjectJars(listOf(":kotlinx-serialization-compiler-plugin")) +} \ No newline at end of file diff --git a/prepare/ide-artifacts/noarg-compiler-plugin-for-ide/build.gradle.kts b/prepare/ide-artifacts/noarg-compiler-plugin-for-ide/build.gradle.kts index de5d0135c65..51bcf4a17c3 100644 --- a/prepare/ide-artifacts/noarg-compiler-plugin-for-ide/build.gradle.kts +++ b/prepare/ide-artifacts/noarg-compiler-plugin-for-ide/build.gradle.kts @@ -1 +1,3 @@ -publishProjectJars(listOf(":kotlin-noarg-compiler-plugin")) \ No newline at end of file +idePluginDependency { + publishProjectJars(listOf(":kotlin-noarg-compiler-plugin")) +} \ No newline at end of file diff --git a/prepare/ide-artifacts/sam-with-receiver-compiler-plugin-for-ide/build.gradle.kts b/prepare/ide-artifacts/sam-with-receiver-compiler-plugin-for-ide/build.gradle.kts index da1075f9838..0cb7783d796 100644 --- a/prepare/ide-artifacts/sam-with-receiver-compiler-plugin-for-ide/build.gradle.kts +++ b/prepare/ide-artifacts/sam-with-receiver-compiler-plugin-for-ide/build.gradle.kts @@ -1 +1,3 @@ -publishProjectJars(listOf(":kotlin-sam-with-receiver-compiler-plugin")) \ No newline at end of file +idePluginDependency { + publishProjectJars(listOf(":kotlin-sam-with-receiver-compiler-plugin")) +} \ No newline at end of file diff --git a/prepare/ide-artifacts/tests-common-tests-for-ide/build.gradle.kts b/prepare/ide-artifacts/tests-common-tests-for-ide/build.gradle.kts index 6c9602f0180..f71fc0795c5 100644 --- a/prepare/ide-artifacts/tests-common-tests-for-ide/build.gradle.kts +++ b/prepare/ide-artifacts/tests-common-tests-for-ide/build.gradle.kts @@ -1 +1,3 @@ -publishTestJar(":compiler:tests-common") \ No newline at end of file +idePluginDependency { + publishTestJar(":compiler:tests-common") +} \ No newline at end of file