Put IDE plugin dependency artifact building/publishing under a flag

This commit is contained in:
Yan Zhulanow
2020-05-07 20:08:43 +09:00
parent b00b6b0614
commit 066b6d830f
15 changed files with 108 additions and 73 deletions
+28 -26
View File
@@ -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") {
+7
View File
@@ -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<String>, libraryDependencies: List<String> = emptyList()) {
apply<JavaPlugin>()
@@ -1 +1,3 @@
publishProjectJars(listOf(":kotlin-allopen-compiler-plugin"))
idePluginDependency {
publishProjectJars(listOf(":kotlin-allopen-compiler-plugin"))
}
@@ -1 +1,3 @@
publishTestJar(":compiler:incremental-compilation-impl")
idePluginDependency {
publishTestJar(":compiler:incremental-compilation-impl")
}
@@ -1 +1,3 @@
publishProjectJars(listOf(":plugins:android-extensions-compiler"))
idePluginDependency {
publishProjectJars(listOf(":plugins:android-extensions-compiler"))
}
@@ -1,6 +1,8 @@
@Suppress("UNCHECKED_CAST")
val compilerComponentProjects = project(":kotlin-jps-plugin").extra["compilerComponents"] as List<String>
idePluginDependency {
@Suppress("UNCHECKED_CAST")
val compilerComponentProjects = project(":kotlin-jps-plugin").extra["compilerComponents"] as List<String>
val otherProjects = listOf(":kotlin-daemon-client")
val otherProjects = listOf(":kotlin-daemon-client")
publishProjectJars(compilerComponentProjects + otherProjects)
publishProjectJars(compilerComponentProjects + otherProjects)
}
@@ -1 +1,3 @@
publishTestJar(":compiler:incremental-compilation-impl")
idePluginDependency {
publishTestJar(":compiler:incremental-compilation-impl")
}
@@ -1 +1,3 @@
publishTestJar(":kotlin-build-common")
idePluginDependency {
publishTestJar(":kotlin-build-common")
}
@@ -1,27 +1,29 @@
val compilerModules: Array<String> by rootProject.extra
idePluginDependency {
val compilerModules: Array<String> 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())
)
publishProjectJars(
projects = projects,
libraryDependencies = listOf(protobufFull())
)
}
@@ -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()
sourcesJar()
javadocJar()
}
@@ -1 +1,3 @@
publishProjectJars(listOf(":kotlin-gradle-statistics"))
idePluginDependency {
publishProjectJars(listOf(":kotlin-gradle-statistics"))
}
@@ -1 +1,3 @@
publishProjectJars(listOf(":kotlinx-serialization-compiler-plugin"))
idePluginDependency {
publishProjectJars(listOf(":kotlinx-serialization-compiler-plugin"))
}
@@ -1 +1,3 @@
publishProjectJars(listOf(":kotlin-noarg-compiler-plugin"))
idePluginDependency {
publishProjectJars(listOf(":kotlin-noarg-compiler-plugin"))
}
@@ -1 +1,3 @@
publishProjectJars(listOf(":kotlin-sam-with-receiver-compiler-plugin"))
idePluginDependency {
publishProjectJars(listOf(":kotlin-sam-with-receiver-compiler-plugin"))
}
@@ -1 +1,3 @@
publishTestJar(":compiler:tests-common")
idePluginDependency {
publishTestJar(":compiler:tests-common")
}