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") { register("test") {
doLast { 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.artifacts.component.ProjectComponentIdentifier
import org.gradle.api.file.DuplicatesStrategy import org.gradle.api.file.DuplicatesStrategy
import org.gradle.api.plugins.BasePluginConvention import org.gradle.api.plugins.BasePluginConvention
import org.gradle.api.plugins.JavaPlugin
import org.gradle.api.tasks.TaskProvider import org.gradle.api.tasks.TaskProvider
import org.gradle.api.tasks.Upload import org.gradle.api.tasks.Upload
import org.gradle.api.tasks.javadoc.Javadoc import org.gradle.api.tasks.javadoc.Javadoc
import org.gradle.jvm.tasks.Jar import org.gradle.jvm.tasks.Jar
import org.gradle.api.artifacts.dsl.DependencyHandler
import org.gradle.kotlin.dsl.* 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 ConfigurationContainer.getOrCreate(name: String): Configuration = findByName(name) ?: create(name)
fun Jar.setupPublicJar(baseName: String, classifier: String = "") { 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 java
} }
val projectsToShadow = listOf( val compilerComponents by extra(
":core:type-system", listOf(
":kotlin-build-common", ":core:type-system",
":kotlin-util-io", ":kotlin-build-common",
":kotlin-util-klib", ":kotlin-util-io",
":kotlin-util-klib-metadata", ":kotlin-util-klib",
":compiler:cli-common", ":kotlin-util-klib-metadata",
":kotlin-compiler-runner", ":compiler:cli-common",
":daemon-common", ":kotlin-compiler-runner",
":daemon-common-new", ":daemon-common",
":core:descriptors", ":daemon-common-new",
":core:descriptors.jvm", ":core:descriptors",
":idea:idea-jps-common", ":core:descriptors.jvm",
":jps-plugin", ":idea:idea-jps-common",
":kotlin-preloader", ":kotlin-preloader",
":compiler:util", ":compiler:util",
":compiler:config", ":compiler:config",
":compiler:config.jvm", ":compiler:config.jvm",
":js:js.config", ":js:js.config",
":core:util.runtime", ":core:util.runtime",
":compiler:compiler.version" ":compiler:compiler.version"
)
) )
val projectsToShadow = compilerComponents + listOf(":jps-plugin")
dependencies { dependencies {
projectsToShadow.forEach { projectsToShadow.forEach {
embedded(project(it)) { isTransitive = false } embedded(project(it)) { isTransitive = false }
+27
View File
@@ -306,6 +306,20 @@ include ":kotlin-build-common",
":kotlin-serialization-unshaded", ":kotlin-serialization-unshaded",
":kotlin-serialization:plugin-marker" ":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) { if (buildProperties.includeCidrPlugins) {
logger.info("Including CIDR modules in settings.gradle") logger.info("Including CIDR modules in settings.gradle")
include ":kotlin-ultimate:ide:cidr-gradle-tooling", 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-jvm').projectDir = "$rootDir/libraries/kotlinx-metadata/jvm" as File
project(':kotlinx-metadata-klib').projectDir = "$rootDir/libraries/kotlinx-metadata/klib" as File project(':kotlinx-metadata-klib').projectDir = "$rootDir/libraries/kotlinx-metadata/klib" as File
project(':kotlin-compiler').projectDir = "$rootDir/prepare/compiler" 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-embeddable').projectDir = "$rootDir/prepare/compiler-embeddable" as File
project(':kotlin-compiler-client-embeddable').projectDir = "$rootDir/prepare/compiler-client-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 project(':kotlin-preloader').projectDir = "$rootDir/compiler/preloader" as File