Publish artifacts needed for the kotlin-ide repository

This commit is contained in:
Yan Zhulanow
2020-04-09 17:37:20 +09:00
parent 46ac241e2f
commit dea902551d
17 changed files with 210 additions and 21 deletions
+28
View File
@@ -752,6 +752,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"
)
}
register("test") {
doLast {
+70
View File
@@ -9,10 +9,12 @@ import org.gradle.api.artifacts.ConfigurationContainer
import org.gradle.api.artifacts.component.ProjectComponentIdentifier
import org.gradle.api.file.DuplicatesStrategy
import org.gradle.api.plugins.BasePluginConvention
import org.gradle.api.plugins.JavaPlugin
import org.gradle.api.tasks.TaskProvider
import org.gradle.api.tasks.Upload
import org.gradle.api.tasks.javadoc.Javadoc
import org.gradle.jvm.tasks.Jar
import org.gradle.api.artifacts.dsl.DependencyHandler
import org.gradle.kotlin.dsl.*
@@ -155,6 +157,74 @@ fun Project.publish(body: Upload.() -> Unit = {}): Upload {
}
}
fun Project.publishProjectJars(projects: List<String>, libraryDependencies: List<String> = emptyList()) {
apply<JavaPlugin>()
val fatJarContents by configurations.creating
dependencies {
for (projectName in projects) {
fatJarContents(project(projectName)) { isTransitive = false }
}
for (libraryDependency in libraryDependencies) {
fatJarContents(libraryDependency)
}
}
publish()
val jar: Jar by tasks
jar.apply {
dependsOn(fatJarContents)
from {
fatJarContents.map(::zipTree)
}
}
sourcesJar {
from {
projects.map {
project(it).mainSourceSet.allSource
}
}
}
javadocJar()
}
fun Project.publishTestJar(projectName: String) {
apply<JavaPlugin>()
val fatJarContents by configurations.creating
dependencies {
fatJarContents(project(projectName, configuration = "tests-jar")) { isTransitive = false }
}
publish()
val jar: Jar by tasks
jar.apply {
dependsOn(fatJarContents)
from {
fatJarContents.map(::zipTree)
}
}
sourcesJar {
from {
project(projectName).testSourceSet.allSource
}
}
javadocJar()
}
fun ConfigurationContainer.getOrCreate(name: String): Configuration = findByName(name) ?: create(name)
fun Jar.setupPublicJar(baseName: String, classifier: String = "") {
@@ -0,0 +1 @@
publishProjectJars(listOf(":kotlin-allopen-compiler-plugin"))
@@ -0,0 +1 @@
publishTestJar(":compiler:incremental-compilation-impl")
@@ -0,0 +1 @@
publishProjectJars(listOf(":plugins:android-extensions-compiler"))
@@ -0,0 +1,6 @@
@Suppress("UNCHECKED_CAST")
val compilerComponentProjects = project(":kotlin-jps-plugin").extra["compilerComponents"] as List<String>
val otherProjects = listOf(":kotlin-daemon-client")
publishProjectJars(compilerComponentProjects + otherProjects)
@@ -0,0 +1 @@
publishTestJar(":compiler:incremental-compilation-impl")
@@ -0,0 +1 @@
publishTestJar(":kotlin-build-common")
@@ -0,0 +1,27 @@
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 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())
)
@@ -0,0 +1,18 @@
plugins {
java
}
publish()
val jar: Jar by tasks
jar.apply {
val distKotlincTask = project(":kotlin-compiler").tasks.getByName("distKotlinc")
dependsOn(distKotlincTask)
from(distKotlincTask)
}
sourcesJar()
javadocJar()
@@ -0,0 +1 @@
publishProjectJars(listOf(":kotlin-gradle-statistics"))
@@ -0,0 +1 @@
publishProjectJars(listOf(":kotlinx-serialization-compiler-plugin"))
@@ -0,0 +1 @@
publishProjectJars(listOf(":kotlin-noarg-compiler-plugin"))
@@ -0,0 +1 @@
publishProjectJars(listOf(":kotlin-sam-with-receiver-compiler-plugin"))
@@ -0,0 +1 @@
publishTestJar(":compiler:tests-common")
+24 -21
View File
@@ -4,29 +4,32 @@ plugins {
java
}
val projectsToShadow = listOf(
":core:type-system",
":kotlin-build-common",
":kotlin-util-io",
":kotlin-util-klib",
":kotlin-util-klib-metadata",
":compiler:cli-common",
":kotlin-compiler-runner",
":daemon-common",
":daemon-common-new",
":core:descriptors",
":core:descriptors.jvm",
":idea:idea-jps-common",
":jps-plugin",
":kotlin-preloader",
":compiler:util",
":compiler:config",
":compiler:config.jvm",
":js:js.config",
":core:util.runtime",
":compiler:compiler.version"
val compilerComponents by extra(
listOf(
":core:type-system",
":kotlin-build-common",
":kotlin-util-io",
":kotlin-util-klib",
":kotlin-util-klib-metadata",
":compiler:cli-common",
":kotlin-compiler-runner",
":daemon-common",
":daemon-common-new",
":core:descriptors",
":core:descriptors.jvm",
":idea:idea-jps-common",
":kotlin-preloader",
":compiler:util",
":compiler:config",
":compiler:config.jvm",
":js:js.config",
":core:util.runtime",
":compiler:compiler.version"
)
)
val projectsToShadow = compilerComponents + listOf(":jps-plugin")
dependencies {
projectsToShadow.forEach {
embedded(project(it)) { isTransitive = false }
+27
View File
@@ -306,6 +306,20 @@ include ":kotlin-build-common",
":kotlin-serialization-unshaded",
":kotlin-serialization:plugin-marker"
include ":prepare:ide-artifacts:android-extensions-compiler-plugin-for-ide",
":prepare:ide-artifacts:allopen-compiler-plugin-for-ide",
":prepare:ide-artifacts:allopen-compiler-plugin-tests-for-ide",
":prepare:ide-artifacts:incremental-compilation-impl-tests-for-ide",
":prepare:ide-artifacts:kotlin-build-common-tests-for-ide",
":prepare:ide-artifacts:kotlin-compiler-for-ide",
":prepare:ide-artifacts:kotlin-dist-for-ide",
":prepare:ide-artifacts:kotlin-gradle-statistics-for-ide",
":prepare:ide-artifacts:kotlinx-serialization-compiler-plugin-for-ide",
":prepare:ide-artifacts:noarg-compiler-plugin-for-ide",
":prepare:ide-artifacts:sam-with-receiver-compiler-plugin-for-ide",
":prepare:ide-artifacts:tests-common-tests-for-ide",
":prepare:ide-artifacts:compiler-components-for-jps"
if (buildProperties.includeCidrPlugins) {
logger.info("Including CIDR modules in settings.gradle")
include ":kotlin-ultimate:ide:cidr-gradle-tooling",
@@ -404,6 +418,19 @@ project(':kotlinx-metadata').projectDir = "$rootDir/libraries/kotlinx-metadata"
project(':kotlinx-metadata-jvm').projectDir = "$rootDir/libraries/kotlinx-metadata/jvm" as File
project(':kotlinx-metadata-klib').projectDir = "$rootDir/libraries/kotlinx-metadata/klib" as File
project(':kotlin-compiler').projectDir = "$rootDir/prepare/compiler" as File
project(':prepare:ide-artifacts:android-extensions-compiler-plugin-for-ide').projectDir = "$rootDir/prepare/ide-artifacts/android-extensions-compiler-plugin-for-ide" as File
project(':prepare:ide-artifacts:allopen-compiler-plugin-for-ide').projectDir = "$rootDir/prepare/ide-artifacts/allopen-compiler-plugin-for-ide" as File
project(':prepare:ide-artifacts:allopen-compiler-plugin-tests-for-ide').projectDir = "$rootDir/prepare/ide-artifacts/allopen-compiler-plugin-tests-for-ide" as File
project(':prepare:ide-artifacts:incremental-compilation-impl-tests-for-ide').projectDir = "$rootDir/prepare/ide-artifacts/incremental-compilation-impl-tests-for-ide" as File
project(':prepare:ide-artifacts:kotlin-build-common-tests-for-ide').projectDir = "$rootDir/prepare/ide-artifacts/kotlin-build-common-tests-for-ide" as File
project(':prepare:ide-artifacts:kotlin-compiler-for-ide').projectDir = "$rootDir/prepare/ide-artifacts/kotlin-compiler-for-ide" as File
project(':prepare:ide-artifacts:kotlin-dist-for-ide').projectDir = "$rootDir/prepare/ide-artifacts/kotlin-dist-for-ide" as File
project(':prepare:ide-artifacts:kotlin-gradle-statistics-for-ide').projectDir = "$rootDir/prepare/ide-artifacts/kotlin-gradle-statistics-for-ide" as File
project(':prepare:ide-artifacts:kotlinx-serialization-compiler-plugin-for-ide').projectDir = "$rootDir/prepare/ide-artifacts/kotlinx-serialization-compiler-plugin-for-ide" as File
project(':prepare:ide-artifacts:noarg-compiler-plugin-for-ide').projectDir = "$rootDir/prepare/ide-artifacts/noarg-compiler-plugin-for-ide" as File
project(':prepare:ide-artifacts:sam-with-receiver-compiler-plugin-for-ide').projectDir = "$rootDir/prepare/ide-artifacts/sam-with-receiver-compiler-plugin-for-ide" as File
project(':prepare:ide-artifacts:tests-common-tests-for-ide').projectDir = "$rootDir/prepare/ide-artifacts/tests-common-tests-for-ide" as File
project(':prepare:ide-artifacts:compiler-components-for-jps').projectDir = "$rootDir/prepare/ide-artifacts/compiler-components-for-jps" as File
project(':kotlin-compiler-embeddable').projectDir = "$rootDir/prepare/compiler-embeddable" as File
project(':kotlin-compiler-client-embeddable').projectDir = "$rootDir/prepare/compiler-client-embeddable" as File
project(':kotlin-preloader').projectDir = "$rootDir/compiler/preloader" as File