[stdlib-mpp] Exclude kotlin-stdlib-js/js-ir projects and use kotlin-stdlib instead

- Specify disambiguating attributes in kotlin-dom-api-compat
  compile dependency configurations
  because it uses the flag that removes JS compiler type attribute
  from all configurations and variants

  KT-56106
This commit is contained in:
Ilya Gorbunov
2023-06-28 05:48:24 +02:00
committed by Space Team
parent a4c75338f3
commit a9bc8fa402
10 changed files with 46 additions and 24 deletions
+3 -4
View File
@@ -325,7 +325,6 @@ extra["compilerArtifactsForIde"] = listOfNotNull(
":plugins:parcelize:parcelize-runtime", ":plugins:parcelize:parcelize-runtime",
":kotlin-stdlib-common", ":kotlin-stdlib-common",
":kotlin-stdlib", ":kotlin-stdlib",
":kotlin-stdlib-js",
":kotlin-stdlib-wasm", ":kotlin-stdlib-wasm",
":kotlin-test", ":kotlin-test",
":kotlin-daemon", ":kotlin-daemon",
@@ -342,7 +341,7 @@ val coreLibProjects by extra {
listOfNotNull( listOfNotNull(
":kotlin-stdlib", ":kotlin-stdlib",
":kotlin-stdlib-common", ":kotlin-stdlib-common",
":kotlin-stdlib-js", ":kotlin-stdlib-js".takeIf { !kotlinBuildProperties.kotlinStdlibMpp },
":kotlin-stdlib-jdk7", ":kotlin-stdlib-jdk7",
":kotlin-stdlib-jdk8", ":kotlin-stdlib-jdk8",
":kotlin-test", ":kotlin-test",
@@ -605,9 +604,9 @@ tasks {
} }
register("coreLibsTest") { register("coreLibsTest") {
(coreLibProjects + listOf( (coreLibProjects + listOfNotNull(
":kotlin-stdlib:samples", ":kotlin-stdlib:samples",
":kotlin-stdlib-js-ir", ":kotlin-stdlib-js-ir".takeIf { !kotlinBuildProperties.kotlinStdlibMpp },
":kotlin-test:kotlin-test-js-ir".takeIf { !kotlinBuildProperties.isInJpsBuildIdeaSync }, ":kotlin-test:kotlin-test-js-ir".takeIf { !kotlinBuildProperties.isInJpsBuildIdeaSync },
":kotlin-test:kotlin-test-js:kotlin-test-js-it".takeIf { !kotlinBuildProperties.isInJpsBuildIdeaSync }, ":kotlin-test:kotlin-test-js:kotlin-test-js-it".takeIf { !kotlinBuildProperties.isInJpsBuildIdeaSync },
":kotlin-test:kotlin-test-js-ir:kotlin-test-js-ir-it".takeIf { !kotlinBuildProperties.isInJpsBuildIdeaSync }, ":kotlin-test:kotlin-test-js-ir:kotlin-test-js-ir-it".takeIf { !kotlinBuildProperties.isInJpsBuildIdeaSync },
+1 -1
View File
@@ -68,7 +68,7 @@ dependencies {
testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps:jdom")) testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps:jdom"))
testRuntimeOnly(kotlinStdlib()) testRuntimeOnly(kotlinStdlib())
testJsRuntime(kotlinStdlib("js")) testJsRuntime(kotlinStdlib())
if (!kotlinBuildProperties.isInJpsBuildIdeaSync) { if (!kotlinBuildProperties.isInJpsBuildIdeaSync) {
testJsRuntime(project(":kotlin-test:kotlin-test-js")) // to be sure that kotlin-test-js built before tests runned testJsRuntime(project(":kotlin-test:kotlin-test-js")) // to be sure that kotlin-test-js built before tests runned
} }
@@ -1,3 +1,4 @@
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsCompilerAttribute
import plugins.configureDefaultPublishing import plugins.configureDefaultPublishing
import plugins.configureKotlinPomAttributes import plugins.configureKotlinPomAttributes
@@ -20,10 +21,18 @@ kotlin {
kotlin.srcDir("$jsStdlibSources/kotlin/dom") kotlin.srcDir("$jsStdlibSources/kotlin/dom")
} }
dependencies { dependencies {
api(project(":kotlin-stdlib-js")) api(project(":kotlin-stdlib"))
} }
} }
} }
val main by compilations.getting
val test by compilations.getting
// TODO: Remove together with kotlin.js.compiler.publish.attribute=false property
listOf(main, test).forEach { compilation ->
configurations[compilation.compileDependencyConfigurationName].attributes {
attribute(KotlinJsCompilerAttribute.jsCompilerAttribute, KotlinJsCompilerAttribute.ir)
}
}
} }
} }
+1 -1
View File
@@ -266,7 +266,7 @@ val (jsApi, jsRuntime) = listOf("api", "runtime").map { usage ->
jsRuntime.extendsFrom(jsApi) jsRuntime.extendsFrom(jsApi)
dependencies { dependencies {
jsApi(project(":kotlin-stdlib-js")) jsApi(project(":kotlin-stdlib"))
} }
artifacts { artifacts {
@@ -9,11 +9,28 @@ kotlin {
nodejs() nodejs()
} }
} }
val commonMainFullSources by task<Sync> {
dependsOn(":prepare:build.version:writeStdlibVersion")
val sources = listOf(
"libraries/stdlib/common/src/",
"libraries/stdlib/src/kotlin/",
"libraries/stdlib/unsigned/",
"core/builtins/src/kotlin/internal/",
)
sources.forEach { path ->
from("$rootDir/$path") {
into(path.dropLastWhile { it != '/' })
}
}
into("$buildDir/commonMainFullSources")
}
val commonMainSources by task<Sync> { val commonMainSources by task<Sync> {
dependsOn(":kotlin-stdlib-js-ir:commonMainSources") dependsOn(commonMainFullSources)
from { from {
val fullCommonMainSources = tasks.getByPath(":kotlin-stdlib-js-ir:commonMainSources")
exclude( exclude(
listOf( listOf(
"libraries/stdlib/unsigned/src/kotlin/UByteArray.kt", "libraries/stdlib/unsigned/src/kotlin/UByteArray.kt",
@@ -52,28 +69,27 @@ val commonMainSources by task<Sync> {
"libraries/stdlib/src/kotlin/enums/**" "libraries/stdlib/src/kotlin/enums/**"
) )
) )
fullCommonMainSources.outputs.files.singleFile commonMainFullSources.get().outputs.files.singleFile
} }
into("$buildDir/commonMainSources") into("$buildDir/commonMainSources")
} }
val commonMainCollectionSources by task<Sync> { val commonMainCollectionSources by task<Sync> {
dependsOn(":kotlin-stdlib-js-ir:commonMainSources") dependsOn(commonMainFullSources)
from { from {
val fullCommonMainSources = tasks.getByPath(":kotlin-stdlib-js-ir:commonMainSources")
include("libraries/stdlib/src/kotlin/collections/PrimitiveIterators.kt") include("libraries/stdlib/src/kotlin/collections/PrimitiveIterators.kt")
fullCommonMainSources.outputs.files.singleFile commonMainFullSources.get().outputs.files.singleFile
} }
into("$buildDir/commonMainCollectionSources") into("$buildDir/commonMainCollectionSources")
} }
val jsMainSources by task<Sync> { val jsMainSources by task<Sync> {
dependsOn(":kotlin-stdlib-js-ir:jsMainSources") dependsOn(":kotlin-stdlib:prepareJsIrMainSources")
from { from {
val fullJsMainSources = tasks.getByPath(":kotlin-stdlib-js-ir:jsMainSources") val fullJsMainSources = tasks.getByPath(":kotlin-stdlib:prepareJsIrMainSources")
exclude( exclude(
listOf( listOf(
"libraries/stdlib/js/src/org.w3c/**", "libraries/stdlib/js/src/org.w3c/**",
@@ -10,8 +10,8 @@ idePluginDependency {
jar.apply { jar.apply {
archiveExtension.set("klib") archiveExtension.set("klib")
val jsRuntimeProjectName = ":kotlin-stdlib-js-ir" val jsRuntimeProjectName = ":kotlin-stdlib"
val klibTaskName = "packFullRuntimeKLib" val klibTaskName = "jsJar"
dependsOn("$jsRuntimeProjectName:$klibTaskName") dependsOn("$jsRuntimeProjectName:$klibTaskName")
@@ -35,7 +35,7 @@
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.jetbrains.kotlin</groupId> <groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-js</artifactId> <artifactId>kotlin-stdlib</artifactId>
<version>ArtifactsTest.version</version> <version>ArtifactsTest.version</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
@@ -34,7 +34,7 @@
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.jetbrains.kotlin</groupId> <groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-js</artifactId> <artifactId>kotlin-stdlib</artifactId>
<version>ArtifactsTest.version</version> <version>ArtifactsTest.version</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
@@ -64,7 +64,6 @@ val kotlinGradlePluginAndItsRequired = arrayOf(
":kotlin-stdlib", ":kotlin-stdlib",
":kotlin-stdlib-jdk7", ":kotlin-stdlib-jdk7",
":kotlin-stdlib-jdk8", ":kotlin-stdlib-jdk8",
":kotlin-stdlib-js",
":kotlin-stdlib-wasm", ":kotlin-stdlib-wasm",
":examples:annotation-processor-example", ":examples:annotation-processor-example",
":kotlin-assignment-compiler-plugin.embeddable", ":kotlin-assignment-compiler-plugin.embeddable",
+3 -4
View File
@@ -582,8 +582,6 @@ if (buildProperties.inJpsBuildIdeaSync) {
include ":core:builtins", include ":core:builtins",
":kotlin-stdlib-common", ":kotlin-stdlib-common",
":kotlin-stdlib", ":kotlin-stdlib",
":kotlin-stdlib-js",
":kotlin-stdlib-js-ir",
":kotlin-dom-api-compat", ":kotlin-dom-api-compat",
":kotlin-stdlib-js-ir-minimal-for-test", ":kotlin-stdlib-js-ir-minimal-for-test",
":kotlin-stdlib-wasm", ":kotlin-stdlib-wasm",
@@ -603,12 +601,13 @@ if (buildProperties.inJpsBuildIdeaSync) {
":kotlin-test:kotlin-test-wasm", ":kotlin-test:kotlin-test-wasm",
":native:native.tests" ":native:native.tests"
if (!stdlibMpp) include ":kotlin-stdlib-js", ":kotlin-stdlib-js-ir"
if (!stdlibMpp) include ":kotlin-stdlib-mpp" if (!stdlibMpp) include ":kotlin-stdlib-mpp"
project(':kotlin-stdlib-common').projectDir = "$rootDir/libraries/stdlib/common" as File project(':kotlin-stdlib-common').projectDir = "$rootDir/libraries/stdlib/common" as File
project(':kotlin-stdlib').projectDir = "$rootDir/libraries/stdlib" + (stdlibMpp ? "" : "/jvm") as File project(':kotlin-stdlib').projectDir = "$rootDir/libraries/stdlib" + (stdlibMpp ? "" : "/jvm") as File
project(':kotlin-stdlib-js').projectDir = "$rootDir/libraries/stdlib/js-v1" as File if (!stdlibMpp) 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 if (!stdlibMpp) project(':kotlin-stdlib-js-ir').projectDir = "$rootDir/libraries/stdlib/js-ir" as File
project(':kotlin-dom-api-compat').projectDir = "$rootDir/libraries/kotlin-dom-api-compat" as File project(':kotlin-dom-api-compat').projectDir = "$rootDir/libraries/kotlin-dom-api-compat" as File
project(':kotlin-stdlib-wasm').projectDir = "$rootDir/libraries/stdlib/wasm" as File project(':kotlin-stdlib-wasm').projectDir = "$rootDir/libraries/stdlib/wasm" as File
project(':kotlin-stdlib-js-ir-minimal-for-test').projectDir = "$rootDir/libraries/stdlib/js-ir-minimal-for-test" as File project(':kotlin-stdlib-js-ir-minimal-for-test').projectDir = "$rootDir/libraries/stdlib/js-ir-minimal-for-test" as File