All but one

This commit is contained in:
Kirill Shmakov
2019-02-25 13:46:34 +03:00
parent b695f20526
commit fb14128cbd
4 changed files with 31 additions and 23 deletions
@@ -72,6 +72,6 @@ public class KotlinVersion(val major: Int, val minor: Int, val patch: Int) : Com
* Returns the current version of the Kotlin standard library.
*/
@kotlin.jvm.JvmField
public val CURRENT: KotlinVersion = KotlinVersion(1, 3, 0) // value is written here automatically during build
public val CURRENT: KotlinVersion = KotlinVersion(1, 3, 30) // value is written here automatically during build
}
}
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.konan.target.CompilerOutputKind
import org.jetbrains.kotlin.konan.target.HostManager
import org.junit.Assert
import org.junit.Test
import java.lang.StringBuilder
import java.util.jar.JarFile
import java.util.zip.ZipFile
import kotlin.test.assertEquals
@@ -34,6 +35,13 @@ class NewMultiplatformIT : BaseGradleIT() {
else -> error("Unknown host")
}
val supportedNativeTargets = when {
HostManager.hostIsMingw -> listOf("linux64", "mingw64", "wasm32")
HostManager.hostIsLinux -> listOf("linux64", "mingw64", "wasm32")
HostManager.hostIsMac -> listOf("linux64", "macos64", "wasm32")
else -> error("Unknown host")
}
private fun Project.targetClassesDir(targetName: String, sourceSetName: String = "main") =
classesDir(sourceSet = "$targetName/$sourceSetName")
@@ -615,19 +623,21 @@ class NewMultiplatformIT : BaseGradleIT() {
projectDir.resolve("repo")
}
val dependencyBuilder = StringBuilder()
dependencyBuilder.append("dependencies {\n")
dependencyBuilder.append(" allJvmImplementation 'com.example:sample-lib-jvm6:1.0'\n")
dependencyBuilder.append(" nodeJsMainImplementation 'com.example:sample-lib-nodejs:1.0'\n")
for (target in supportedNativeTargets) {
dependencyBuilder.append(" ${target}MainImplementation 'com.example:sample-lib-$target:1.0'\n")
}
dependencyBuilder.append("}")
with(Project("sample-app", gradleVersion, "new-mpp-lib-and-app")) {
setupWorkingDir()
gradleBuildScript().modify {
it.replace("implementation 'com.example:sample-lib:1.0'", "implementation 'com.example:sample-lib-metadata:1.0'") + "\n" + """
repositories { maven { url '${repoDir.toURI()}' } }
dependencies {
allJvmImplementation 'com.example:sample-lib-jvm6:1.0'
nodeJsMainImplementation 'com.example:sample-lib-nodejs:1.0'
wasm32MainImplementation 'com.example:sample-lib-wasm32:1.0'
${nativeHostTargetName}MainImplementation 'com.example:sample-lib-${nativeHostTargetName.toLowerCase()}:1.0'
}
""".trimIndent()
it.replace("implementation 'com.example:sample-lib:1.0'", "implementation 'com.example:sample-lib-metadata:1.0'") +
"\nrepositories { maven { url '${repoDir.toURI()}' } }\n\n" + dependencyBuilder.toString()
}
build("assemble") {
@@ -1092,9 +1102,13 @@ class NewMultiplatformIT : BaseGradleIT() {
}
val host = nativeHostTargetName
val libraryCinteropTask = ":projectLibrary:cinteropStdio${host.capitalize()}"
val libraryCompileTask = ":projectLibrary:compileKotlin${host.capitalize()}"
build(":projectLibrary:build") {
assertSuccessful()
assertTasksExecuted(":projectLibrary:cinteropStdio${host.capitalize()}")
assertTasksExecuted(libraryCinteropTask)
assertTrue(output.contains("Project test"), "No test output found")
assertFileExists("projectLibrary/build/classes/kotlin/$host/main/projectLibrary-cinterop-stdio.klib")
}
@@ -1116,18 +1130,12 @@ class NewMultiplatformIT : BaseGradleIT() {
// Check that changing the compiler version in properties causes interop reprocessing and source recompilation.
build(":projectLibrary:build") {
assertSuccessful()
assertTasksUpToDate(
":projectLibrary:cinteropStdio${host.capitalize()}",
":projectLibrary:compileKotlin${host.capitalize()}"
)
assertTasksUpToDate(libraryCinteropTask, libraryCompileTask)
}
build(":projectLibrary:build", "-Porg.jetbrains.kotlin.native.version=0.9.2") {
build(libraryCinteropTask, libraryCompileTask, "-Porg.jetbrains.kotlin.native.version=1.1.0") {
assertSuccessful()
assertTasksExecuted(
":projectLibrary:cinteropStdio${host.capitalize()}",
":projectLibrary:compileKotlin${host.capitalize()}"
)
assertTasksExecuted(libraryCinteropTask, libraryCompileTask)
}
}
}
@@ -518,7 +518,7 @@ open class CInteropProcess : DefaultTask() {
}
libraries.files.filterExternalKlibs(project).forEach { library ->
addArg("-l", library.absolutePath)
addArg("-library", library.absolutePath)
}
addArgs("-copt", allHeadersDirs.map { "-I${it.absolutePath}" })
@@ -25,7 +25,7 @@ class NativeCompilerDownloader(
) {
internal companion object {
val DEFAULT_KONAN_VERSION = KonanVersionImpl(MetaVersion.RC1, 1, 1, 0, 5227)
val DEFAULT_KONAN_VERSION = KonanVersionImpl(MetaVersion.RC1, 1, 2, 0, 7773)
const val BASE_DOWNLOAD_URL = "https://download.jetbrains.com/kotlin/native/builds"
}