Enable KlibBasedMppIT by default and on all host (using Linux targets)
This commit is contained in:
+12
-12
@@ -167,14 +167,14 @@ class HierarchicalMppIT : BaseGradleIT() {
|
||||
publishedMetadataJar.checkAllEntryNamesArePresent(
|
||||
"META-INF/$MULTIPLATFORM_PROJECT_METADATA_FILE_NAME",
|
||||
|
||||
"commonMain/manifest",
|
||||
"commonMain/linkdata/package_com.example/",
|
||||
"commonMain/default/manifest",
|
||||
"commonMain/default/linkdata/package_com.example/",
|
||||
|
||||
"jvmAndJsMain/manifest",
|
||||
"jvmAndJsMain/linkdata/package_com.example/",
|
||||
"jvmAndJsMain/default/manifest",
|
||||
"jvmAndJsMain/default/linkdata/package_com.example/",
|
||||
|
||||
"linuxAndJsMain/manifest",
|
||||
"linuxAndJsMain/linkdata/package_com.example/"
|
||||
"linuxAndJsMain/default/manifest",
|
||||
"linuxAndJsMain/default/linkdata/package_com.example/"
|
||||
)
|
||||
|
||||
val parsedProjectStructureMetadata: KotlinProjectStructureMetadata = publishedMetadataJar.getProjectStructureMetadata()
|
||||
@@ -205,14 +205,14 @@ class HierarchicalMppIT : BaseGradleIT() {
|
||||
publishedMetadataJar.checkAllEntryNamesArePresent(
|
||||
"META-INF/$MULTIPLATFORM_PROJECT_METADATA_FILE_NAME",
|
||||
|
||||
"commonMain/manifest",
|
||||
"commonMain/linkdata/package_com.example.bar/",
|
||||
"commonMain/default/manifest",
|
||||
"commonMain/default/linkdata/package_com.example.bar/",
|
||||
|
||||
"jvmAndJsMain/manifest",
|
||||
"jvmAndJsMain/linkdata/package_com.example.bar/",
|
||||
"jvmAndJsMain/default/manifest",
|
||||
"jvmAndJsMain/default/linkdata/package_com.example.bar/",
|
||||
|
||||
"linuxAndJsMain/manifest",
|
||||
"linuxAndJsMain/linkdata/package_com.example.bar/"
|
||||
"linuxAndJsMain/default/manifest",
|
||||
"linuxAndJsMain/default/linkdata/package_com.example.bar/"
|
||||
)
|
||||
|
||||
val parsedProjectStructureMetadata: KotlinProjectStructureMetadata = publishedMetadataJar.getProjectStructureMetadata()
|
||||
|
||||
+7
-12
@@ -12,10 +12,6 @@ import java.io.File
|
||||
import kotlin.test.Test
|
||||
import kotlin.test.assertFalse
|
||||
|
||||
/** FIXME (sergey.igushkin): please enable these tests back as soon as the Kotlin/Native version that is bundled with the
|
||||
* Kotlin distribution supports compilation to klib and targetless klibs.
|
||||
*/
|
||||
@Ignore
|
||||
class KlibBasedMppIT : BaseGradleIT() {
|
||||
override val defaultGradleVersion = GradleVersionRequired.AtLeast("6.0")
|
||||
|
||||
@@ -54,8 +50,6 @@ class KlibBasedMppIT : BaseGradleIT() {
|
||||
private val dependencyModuleName = "project-dep"
|
||||
|
||||
private fun testBuildWithDependency(configureDependency: Project.() -> Unit) = with(Project("common-klib-lib-and-app")) {
|
||||
Assume.assumeTrue(HostManager.hostIsMac)
|
||||
|
||||
embedProject(Project("common-klib-lib-and-app"), renameTo = dependencyModuleName)
|
||||
gradleBuildScript().modify(::transformBuildScriptWithPluginsDsl)
|
||||
|
||||
@@ -75,10 +69,10 @@ class KlibBasedMppIT : BaseGradleIT() {
|
||||
}
|
||||
""".trimIndent())
|
||||
|
||||
projectDir.resolve("src/iosMain/kotlin/LibIosMainUsage.kt").appendText("\n" + """
|
||||
projectDir.resolve("src/linuxMain/kotlin/LibLinuxMainUsage.kt").appendText("\n" + """
|
||||
package com.h0tk3y.hmpp.klib.demo.test
|
||||
|
||||
import com.projectdep.libIosMainFun as libFun
|
||||
import com.projectdep.libLinuxMainFun as libFun
|
||||
|
||||
private fun useProjectDep() {
|
||||
libFun()
|
||||
@@ -87,7 +81,7 @@ class KlibBasedMppIT : BaseGradleIT() {
|
||||
|
||||
val tasksToExecute = listOf(
|
||||
":compileJvmAndJsMainKotlinMetadata",
|
||||
":compileIosMainKotlinMetadata"
|
||||
":compileLinuxMainKotlinMetadata"
|
||||
)
|
||||
|
||||
build("assemble") {
|
||||
@@ -95,8 +89,9 @@ class KlibBasedMppIT : BaseGradleIT() {
|
||||
|
||||
assertTasksExecuted(*tasksToExecute.toTypedArray())
|
||||
|
||||
assertFileExists("build/classes/kotlin/metadata/jvmAndJsMain/manifest")
|
||||
assertFileExists("build/classes/kotlin/metadata/iosMain/${projectName}_iosMain.klib")
|
||||
assertFileExists("build/classes/kotlin/metadata/commonMain/default/manifest")
|
||||
assertFileExists("build/classes/kotlin/metadata/jvmAndJsMain/default/manifest")
|
||||
assertFileExists("build/classes/kotlin/metadata/linuxMain/${projectName}_linuxMain.klib")
|
||||
|
||||
// Check that the common and JVM+JS source sets don't receive the Kotlin/Native stdlib in the classpath:
|
||||
run {
|
||||
@@ -155,7 +150,7 @@ class KlibBasedMppIT : BaseGradleIT() {
|
||||
|
||||
setupDependencies(this@with)
|
||||
|
||||
val compileNativeMetadataTaskName = "compileIosMainKotlinMetadata"
|
||||
val compileNativeMetadataTaskName = "compileLinuxMainKotlinMetadata"
|
||||
build(":$compileNativeMetadataTaskName") {
|
||||
assertSuccessful()
|
||||
}
|
||||
|
||||
+12
-3
@@ -15,7 +15,8 @@ kotlin {
|
||||
jvm()
|
||||
js()
|
||||
|
||||
ios()
|
||||
linuxX64()
|
||||
linuxArm64()
|
||||
|
||||
sourceSets {
|
||||
val commonMain by getting {
|
||||
@@ -24,6 +25,10 @@ kotlin {
|
||||
}
|
||||
}
|
||||
|
||||
val linuxMain by creating {
|
||||
dependsOn(commonMain)
|
||||
}
|
||||
|
||||
val jvmAndJsMain by creating {
|
||||
dependsOn(commonMain)
|
||||
}
|
||||
@@ -41,6 +46,10 @@ kotlin {
|
||||
implementation(kotlin("stdlib-js"))
|
||||
}
|
||||
}
|
||||
|
||||
configure(listOf(linuxX64(), linuxArm64())) {
|
||||
compilations["main"].defaultSourceSet.dependsOn(linuxMain)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,8 +61,8 @@ publishing {
|
||||
|
||||
tasks {
|
||||
val skipCompilationOfTargets = setOf(
|
||||
"iosArm64",
|
||||
"iosX64"
|
||||
"linuxX64",
|
||||
"linuxArm64"
|
||||
)
|
||||
all {
|
||||
val target = name.removePrefix("compileKotlin").decapitalize()
|
||||
|
||||
+7
-2
@@ -1,3 +1,8 @@
|
||||
/*
|
||||
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package com.h0tk3y.hmpp.klib.demo
|
||||
|
||||
import kotlinx.cinterop.CArrayPointer
|
||||
@@ -9,9 +14,9 @@ actual class LibCommonMainExpect : LibCommonMainIface {
|
||||
println(CArrayPointer::class)
|
||||
}
|
||||
|
||||
fun additionalFunInIosActual() {
|
||||
fun additionalFunInLinuxActual() {
|
||||
println("additional fun in lib iosMain")
|
||||
}
|
||||
}
|
||||
|
||||
fun libIosMainFun(): LibCommonMainIface = LibCommonMainExpect()
|
||||
fun libLinuxMainFun(): LibCommonMainIface = LibCommonMainExpect()
|
||||
Reference in New Issue
Block a user