From 23d0e5f2e1719e8574243c51e3840b634e94a178 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Thu, 25 Jan 2018 22:47:38 +0300 Subject: [PATCH] Workarounds to build parts of stdlib as kotlin-runtime and mock runtime Fix source paths of kotlin-stdlib-minimal-for-tests --- .../jvm-minimal-for-test/build.gradle.kts | 25 +++++++++++-------- .../stdlib/jvm/runtime/kotlin/TypeAliases.kt | 2 ++ .../UninitializedPropertyAccessException.kt | 2 ++ .../jvm/annotations/JvmFlagAnnotations.kt | 1 + .../jvm/annotations/JvmPlatformAnnotations.kt | 2 ++ .../jvm/runtime/kotlin/text/TypeAliases.kt | 2 ++ .../jvm/src/kotlin/collections/TypeAliases.kt | 2 ++ libraries/stdlib/runtime/build.gradle | 1 + 8 files changed, 26 insertions(+), 11 deletions(-) diff --git a/libraries/stdlib/jvm-minimal-for-test/build.gradle.kts b/libraries/stdlib/jvm-minimal-for-test/build.gradle.kts index 587e2af4df5..fff6468f05e 100644 --- a/libraries/stdlib/jvm-minimal-for-test/build.gradle.kts +++ b/libraries/stdlib/jvm-minimal-for-test/build.gradle.kts @@ -23,16 +23,19 @@ sourceSets { } val copySources by task { - from(project(":kotlin-stdlib").projectDir.resolve("jvm/runtime")) - .include("kotlin/TypeAliases.kt", - "kotlin/text/TypeAliases.kt") - from(project(":kotlin-stdlib").projectDir.resolve("src")) - .include("kotlin/collections/TypeAliases.kt", - "kotlin/jvm/JvmVersion.kt", - "kotlin/util/Standard.kt", - "kotlin/internal/Annotations.kt", - "kotlin/internal/contracts/ContractBuilder.kt", - "kotlin/internal/contracts/Effect.kt") + val stdlibProjectDir = project(":kotlin-stdlib").projectDir + + from(stdlibProjectDir.resolve("runtime")) + .include("kotlin/TypeAliases.kt", + "kotlin/text/TypeAliases.kt") + from(stdlibProjectDir.resolve("src")) + .include("kotlin/collections/TypeAliases.kt", + "kotlin/jvm/JvmVersion.kt") + from(stdlibProjectDir.resolve("../src")) + .include("kotlin/util/Standard.kt", + "kotlin/internal/Annotations.kt", + "kotlin/internal/contracts/ContractBuilder.kt", + "kotlin/internal/contracts/Effect.kt") into(File(buildDir, "src")) } @@ -44,7 +47,7 @@ tasks.withType { tasks.withType { dependsOn(copySources) kotlinOptions { - freeCompilerArgs += listOf("-module-name", "kotlin-stdlib") + freeCompilerArgs += listOf("-module-name", "kotlin-stdlib", "-Xmulti-platform") } } diff --git a/libraries/stdlib/jvm/runtime/kotlin/TypeAliases.kt b/libraries/stdlib/jvm/runtime/kotlin/TypeAliases.kt index ba066c3db25..abb2ecee5f0 100644 --- a/libraries/stdlib/jvm/runtime/kotlin/TypeAliases.kt +++ b/libraries/stdlib/jvm/runtime/kotlin/TypeAliases.kt @@ -14,6 +14,8 @@ * limitations under the License. */ +@file:Suppress("ACTUAL_WITHOUT_EXPECT") // for building kotlin-runtime + package kotlin diff --git a/libraries/stdlib/jvm/runtime/kotlin/UninitializedPropertyAccessException.kt b/libraries/stdlib/jvm/runtime/kotlin/UninitializedPropertyAccessException.kt index 754abf479e8..2c0ff0c3172 100644 --- a/libraries/stdlib/jvm/runtime/kotlin/UninitializedPropertyAccessException.kt +++ b/libraries/stdlib/jvm/runtime/kotlin/UninitializedPropertyAccessException.kt @@ -14,6 +14,8 @@ * limitations under the License. */ +@file:Suppress("ACTUAL_WITHOUT_EXPECT") // for building kotlin-runtime + package kotlin public actual class UninitializedPropertyAccessException : RuntimeException { diff --git a/libraries/stdlib/jvm/runtime/kotlin/jvm/annotations/JvmFlagAnnotations.kt b/libraries/stdlib/jvm/runtime/kotlin/jvm/annotations/JvmFlagAnnotations.kt index 27f80538586..d07fcc3155f 100644 --- a/libraries/stdlib/jvm/runtime/kotlin/jvm/annotations/JvmFlagAnnotations.kt +++ b/libraries/stdlib/jvm/runtime/kotlin/jvm/annotations/JvmFlagAnnotations.kt @@ -22,6 +22,7 @@ import kotlin.annotation.AnnotationTarget.* * Marks the JVM backing field of the annotated property as `volatile`, meaning that writes to this field * are immediately made visible to other threads. */ +@Suppress("ACTUAL_WITHOUT_EXPECT") // for building kotlin-runtime @Target(FIELD) @Retention(AnnotationRetention.SOURCE) @MustBeDocumented diff --git a/libraries/stdlib/jvm/runtime/kotlin/jvm/annotations/JvmPlatformAnnotations.kt b/libraries/stdlib/jvm/runtime/kotlin/jvm/annotations/JvmPlatformAnnotations.kt index 3ad95051b91..45b18775813 100644 --- a/libraries/stdlib/jvm/runtime/kotlin/jvm/annotations/JvmPlatformAnnotations.kt +++ b/libraries/stdlib/jvm/runtime/kotlin/jvm/annotations/JvmPlatformAnnotations.kt @@ -14,6 +14,8 @@ * limitations under the License. */ +@file:Suppress("ACTUAL_WITHOUT_EXPECT") // for building kotlin-runtime + package kotlin.jvm import kotlin.reflect.KClass diff --git a/libraries/stdlib/jvm/runtime/kotlin/text/TypeAliases.kt b/libraries/stdlib/jvm/runtime/kotlin/text/TypeAliases.kt index 596970529d6..c3fb61f4507 100644 --- a/libraries/stdlib/jvm/runtime/kotlin/text/TypeAliases.kt +++ b/libraries/stdlib/jvm/runtime/kotlin/text/TypeAliases.kt @@ -14,6 +14,8 @@ * limitations under the License. */ +@file:Suppress("ACTUAL_WITHOUT_EXPECT") // for building kotlin-runtime + package kotlin.text @SinceKotlin("1.1") public actual typealias Appendable = java.lang.Appendable diff --git a/libraries/stdlib/jvm/src/kotlin/collections/TypeAliases.kt b/libraries/stdlib/jvm/src/kotlin/collections/TypeAliases.kt index 291f32fc926..8b5e3fa14f1 100644 --- a/libraries/stdlib/jvm/src/kotlin/collections/TypeAliases.kt +++ b/libraries/stdlib/jvm/src/kotlin/collections/TypeAliases.kt @@ -1,5 +1,7 @@ @file:kotlin.jvm.JvmVersion +@file:Suppress("ACTUAL_WITHOUT_EXPECT") // for building kotlin-stdlib-minimal-for-test + package kotlin.collections @SinceKotlin("1.1") public actual typealias RandomAccess = java.util.RandomAccess diff --git a/libraries/stdlib/runtime/build.gradle b/libraries/stdlib/runtime/build.gradle index 27125b9072b..a93dbe1dd63 100644 --- a/libraries/stdlib/runtime/build.gradle +++ b/libraries/stdlib/runtime/build.gradle @@ -44,6 +44,7 @@ compileKotlin { "-Xallow-kotlin-package", "-Xnormalize-constructor-calls=enable", "-Xdump-declarations-to=${buildDir}/runtime-declarations.json", + "-Xmulti-platform", "-cp", "${rootDir}/dist/builtins", "-module-name", project.name ]