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") { register("publishIdeArtifacts") {
dependsOn( idePluginDependency {
":prepare:ide-artifacts:android-extensions-compiler-plugin-for-ide:publish", dependsOn(
":prepare:ide-artifacts:allopen-compiler-plugin-for-ide:publish", ":prepare:ide-artifacts:android-extensions-compiler-plugin-for-ide:publish",
":prepare:ide-artifacts:allopen-compiler-plugin-tests-for-ide:publish", ":prepare:ide-artifacts:allopen-compiler-plugin-for-ide:publish",
":prepare:ide-artifacts:incremental-compilation-impl-tests-for-ide:publish", ":prepare:ide-artifacts:allopen-compiler-plugin-tests-for-ide:publish",
":prepare:ide-artifacts:kotlin-build-common-tests-for-ide:publish", ":prepare:ide-artifacts:incremental-compilation-impl-tests-for-ide:publish",
":prepare:ide-artifacts:kotlin-compiler-for-ide:publish", ":prepare:ide-artifacts:kotlin-build-common-tests-for-ide:publish",
":prepare:ide-artifacts:kotlin-dist-for-ide:publish", ":prepare:ide-artifacts:kotlin-compiler-for-ide:publish",
":prepare:ide-artifacts:kotlin-gradle-statistics-for-ide:publish", ":prepare:ide-artifacts:kotlin-dist-for-ide:publish",
":prepare:ide-artifacts:kotlinx-serialization-compiler-plugin-for-ide:publish", ":prepare:ide-artifacts:kotlin-gradle-statistics-for-ide:publish",
":prepare:ide-artifacts:noarg-compiler-plugin-for-ide:publish", ":prepare:ide-artifacts:kotlinx-serialization-compiler-plugin-for-ide:publish",
":prepare:ide-artifacts:sam-with-receiver-compiler-plugin-for-ide:publish", ":prepare:ide-artifacts:noarg-compiler-plugin-for-ide:publish",
":prepare:ide-artifacts:tests-common-tests-for-ide:publish", ":prepare:ide-artifacts:sam-with-receiver-compiler-plugin-for-ide:publish",
":prepare:ide-artifacts:compiler-components-for-jps:publish", ":prepare:ide-artifacts:tests-common-tests-for-ide:publish",
":kotlin-script-runtime:publish", ":prepare:ide-artifacts:compiler-components-for-jps:publish",
":kotlin-script-util:publish", ":kotlin-script-runtime:publish",
":kotlin-scripting-common:publish", ":kotlin-script-util:publish",
":kotlin-scripting-jvm:publish", ":kotlin-scripting-common:publish",
":kotlin-scripting-compiler:publish", ":kotlin-scripting-jvm:publish",
":kotlin-scripting-compiler-impl:publish", ":kotlin-scripting-compiler:publish",
":kotlin-android-extensions-runtime:publish", ":kotlin-scripting-compiler-impl:publish",
":kotlin-stdlib:publish", ":kotlin-android-extensions-runtime:publish",
":kotlin-stdlib-jdk7:publish", ":kotlin-stdlib:publish",
":kotlin-stdlib-jdk8:publish", ":kotlin-stdlib-jdk7:publish",
":kotlin-reflect:publish" ":kotlin-stdlib-jdk8:publish",
) ":kotlin-reflect:publish"
)
}
} }
register("test") { 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()) { fun Project.publishProjectJars(projects: List<String>, libraryDependencies: List<String> = emptyList()) {
apply<JavaPlugin>() 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") idePluginDependency {
val compilerComponentProjects = project(":kotlin-jps-plugin").extra["compilerComponents"] as List<String> @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( val excludedCompilerModules = listOf(
":compiler:cli-js-klib", ":compiler:cli-js-klib",
":compiler:javac-wrapper", ":compiler:javac-wrapper",
":compiler:backend.js", ":compiler:backend.js",
":compiler:backend.wasm", ":compiler:backend.wasm",
":js:js.dce", ":js:js.dce",
":compiler:ir.serialization.js", ":compiler:ir.serialization.js",
":compiler:incremental-compilation-impl", ":compiler:incremental-compilation-impl",
":compiler:fir:raw-fir:light-tree2fir" ":compiler:fir:raw-fir:light-tree2fir"
) )
val projects = compilerModules.asList() - excludedCompilerModules + listOf( val projects = compilerModules.asList() - excludedCompilerModules + listOf(
":kotlin-compiler-runner", ":kotlin-compiler-runner",
":kotlin-preloader", ":kotlin-preloader",
":daemon-common", ":daemon-common",
":daemon-common-new", ":daemon-common-new",
":kotlin-daemon", ":kotlin-daemon",
":kotlin-daemon-client", ":kotlin-daemon-client",
":kotlin-daemon-client-new" ":kotlin-daemon-client-new"
) )
publishProjectJars( publishProjectJars(
projects = projects, projects = projects,
libraryDependencies = listOf(protobufFull()) libraryDependencies = listOf(protobufFull())
) )
}
@@ -2,17 +2,19 @@ plugins {
java java
} }
publish() idePluginDependency {
publish()
val jar: Jar by tasks val jar: Jar by tasks
jar.apply { jar.apply {
val distKotlincTask = project(":kotlin-compiler").tasks.getByName("distKotlinc") val distKotlincTask = project(":kotlin-compiler").tasks.getByName("distKotlinc")
dependsOn(distKotlincTask) dependsOn(distKotlincTask)
from(distKotlincTask) from(distKotlincTask)
} }
sourcesJar() sourcesJar()
javadocJar() 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")
}