diff --git a/libraries/stdlib/wasm/build.gradle.kts b/libraries/stdlib/wasm/build.gradle.kts index 5de782a3139..03bd4ea877d 100644 --- a/libraries/stdlib/wasm/build.gradle.kts +++ b/libraries/stdlib/wasm/build.gradle.kts @@ -1,9 +1,12 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinCompile plugins { + `maven-publish` kotlin("multiplatform") } +description = "Kotlin Standard Library for experimental WebAssembly platform" + val unimplementedNativeBuiltIns = (file("$rootDir/core/builtins/native/kotlin/").list().toSortedSet() - file("$rootDir/libraries/stdlib/wasm/builtins/kotlin/").list()) .map { "core/builtins/native/kotlin/$it" } @@ -83,4 +86,37 @@ tasks.named("compileKotlinJs") { (this as KotlinCompile<*>).kotlinOptions.freeCompilerArgs += "-Xir-module-name=kotlin" dependsOn(commonMainSources) dependsOn(builtInsSources) -} \ No newline at end of file +} + +val runtimeElements by configurations.creating {} +val apiElements by configurations.creating {} + +publish { + pom.packaging = "klib" + artifact(tasks.named("jsJar")) { + extension = "klib" + } +} + +afterEvaluate { + // cleanup default publications + // TODO: remove after mpp plugin allows avoiding their creation at all, KT-29273 + publishing { + publications.removeAll { it.name != "Main" } + } + + tasks.withType { + if (publication.name != "Main") this.enabled = false + } + + tasks.named("publish") { + doFirst { + publishing.publications { + if (singleOrNull()?.name != "Main") { + throw GradleException("kotlin-stdlib-wasm should have only one publication, found $size: ${joinToString { it.name }}") + } + } + } + } +} + diff --git a/libraries/stdlib/wasm/publish/build.gradle.kts b/libraries/stdlib/wasm/publish/build.gradle.kts deleted file mode 100644 index 0480de65bc9..00000000000 --- a/libraries/stdlib/wasm/publish/build.gradle.kts +++ /dev/null @@ -1,11 +0,0 @@ -description = "Kotlin Standard Library for experimental WebAssembly platform" - -// Using separate project to publish a single klib from multiplatform build - -publish { - artifactId = "kotlin-stdlib-wasm" - pom.packaging = "klib" - artifact(tasks.getByPath(":kotlin-stdlib-wasm:jsJar")) { - extension = "klib" - } -} diff --git a/settings.gradle b/settings.gradle index 08f6a951e28..01a97906baa 100644 --- a/settings.gradle +++ b/settings.gradle @@ -405,7 +405,6 @@ if (buildProperties.inJpsBuildIdeaSync) { ":kotlin-stdlib-js-ir", ":kotlin-stdlib-js-ir-minimal-for-test", ":kotlin-stdlib-wasm", - ":kotlin-stdlib-wasm-publish", ":kotlin-stdlib-jdk7", ":kotlin-stdlib-jdk8", ":kotlin-stdlib:samples", @@ -424,7 +423,6 @@ if (buildProperties.inJpsBuildIdeaSync) { project(':kotlin-stdlib-js').projectDir = "$rootDir/libraries/stdlib/js-v1" as File project(':kotlin-stdlib-js-ir').projectDir = "$rootDir/libraries/stdlib/js-ir" as File project(':kotlin-stdlib-wasm').projectDir = "$rootDir/libraries/stdlib/wasm" as File - project(':kotlin-stdlib-wasm-publish').projectDir = "$rootDir/libraries/stdlib/wasm/publish" as File project(':kotlin-stdlib-js-ir-minimal-for-test').projectDir = "$rootDir/libraries/stdlib/js-ir-minimal-for-test" as File project(':kotlin-stdlib-jdk7').projectDir = "$rootDir/libraries/stdlib/jdk7" as File project(':kotlin-stdlib-jdk8').projectDir = "$rootDir/libraries/stdlib/jdk8" as File