Publish artifacts needed for the kotlin-ide repository
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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")
|
||||
@@ -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 }
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user