Unverified Commit 86abfd4c authored by Oleksandr Karpovich's avatar Oleksandr Karpovich Committed by GitHub

use kotlin 1.8.0 (#644)

parent dc985814
...@@ -19,7 +19,7 @@ repositories { ...@@ -19,7 +19,7 @@ repositories {
plugins { plugins {
id("com.android.application") version "7.0.2" id("com.android.application") version "7.0.2"
kotlin("android") version "1.6.10" kotlin("android") version "1.8.0"
} }
val skikoNativeX64 by configurations.creating val skikoNativeX64 by configurations.creating
...@@ -87,4 +87,4 @@ dependencies { ...@@ -87,4 +87,4 @@ dependencies {
tasks.withType<org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompile>().configureEach { tasks.withType<org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompile>().configureEach {
dependsOn(unzipTaskX64) dependsOn(unzipTaskX64)
dependsOn(unzipTaskArm64) dependsOn(unzipTaskArm64)
} }
\ No newline at end of file
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins { plugins {
kotlin("jvm") version "1.6.10" kotlin("jvm") version "1.8.0"
application application
} }
......
plugins { plugins {
kotlin("multiplatform") version "1.6.10" kotlin("multiplatform") version "1.8.0"
} }
repositories { repositories {
......
...@@ -10,12 +10,12 @@ buildscript { ...@@ -10,12 +10,12 @@ buildscript {
dependencies { dependencies {
// __KOTLIN_COMPOSE_VERSION__ // __KOTLIN_COMPOSE_VERSION__
classpath(kotlin("gradle-plugin", version = "1.7.20")) classpath(kotlin("gradle-plugin", version = "1.8.0"))
} }
} }
plugins { plugins {
kotlin("multiplatform") version "1.7.20" kotlin("multiplatform") version "1.8.0"
id("org.jetbrains.gradle.apple.applePlugin") version "222.3345.143-0.16" id("org.jetbrains.gradle.apple.applePlugin") version "222.3345.143-0.16"
} }
......
...@@ -6,9 +6,10 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget ...@@ -6,9 +6,10 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
import org.gradle.api.tasks.testing.logging.TestExceptionFormat import org.gradle.api.tasks.testing.logging.TestExceptionFormat
import org.jetbrains.kotlin.gradle.tasks.KotlinCompileTool import org.jetbrains.kotlin.gradle.tasks.KotlinCompileTool
import org.jetbrains.kotlin.konan.target.KonanTarget
plugins { plugins {
kotlin("multiplatform") version "1.7.20" kotlin("multiplatform") version "1.8.0"
id("org.jetbrains.dokka") version "1.7.20" id("org.jetbrains.dokka") version "1.7.20"
`maven-publish` `maven-publish`
signing signing
...@@ -439,42 +440,47 @@ fun configureNativeTarget(os: OS, arch: Arch, target: KotlinNativeTarget) { ...@@ -439,42 +440,47 @@ fun configureNativeTarget(os: OS, arch: Arch, target: KotlinNativeTarget) {
val bridgesLibrary = "$buildDir/nativeBridges/static/$targetString/skiko-native-bridges-$targetString.a" val bridgesLibrary = "$buildDir/nativeBridges/static/$targetString/skiko-native-bridges-$targetString.a"
val allLibraries = skiaStaticLibraries(skiaDir, targetString) + bridgesLibrary val allLibraries = skiaStaticLibraries(skiaDir, targetString) + bridgesLibrary
val skiaBinDir = "$skiaDir/out/${buildType.id}-$targetString"
val linkerFlags = when (os) {
OS.MacOS -> mutableListOf("-linker-option", "-framework", "-linker-option", "Metal",
"-linker-option", "-framework", "-linker-option", "CoreGraphics",
"-linker-option", "-framework", "-linker-option", "CoreText",
"-linker-option", "-framework", "-linker-option", "CoreServices"
)
OS.IOS -> mutableListOf("-linker-option", "-framework", "-linker-option", "Metal",
"-linker-option", "-framework", "-linker-option", "CoreGraphics",
"-linker-option", "-framework", "-linker-option", "UIKit",
"-linker-option", "-framework", "-linker-option", "CoreText")
OS.Linux -> mutableListOf(
"-linker-option", "-L/usr/lib/x86_64-linux-gnu",
"-linker-option", "-lfontconfig",
"-linker-option", "-lGL",
// TODO: an ugly hack, Linux linker searches only unresolved symbols.
"-linker-option", "$skiaBinDir/libsksg.a",
"-linker-option", "$skiaBinDir/libskshaper.a",
"-linker-option", "$skiaBinDir/libskunicode.a",
"-linker-option", "$skiaBinDir/libskia.a"
)
else -> mutableListOf()
}
if (skiko.includeTestHelpers) {
linkerFlags.addAll(when (os) {
OS.Linux -> listOf(
"-linker-option", "-lX11",
"-linker-option", "-lGLX",
)
else -> emptyList()
})
}
// For some reason since 1.8.0 we need to set freeCompilerArgs for binaries AND for compilations
target.binaries.all {
freeCompilerArgs += allLibraries.map { listOf("-include-binary", it) }.flatten() + linkerFlags
}
target.compilations.all { target.compilations.all {
val skiaBinDir = "$skiaDir/out/${buildType.id}-$targetString"
this.
kotlinOptions { kotlinOptions {
val linkerFlags = when (os) { freeCompilerArgs += allLibraries.map { listOf("-include-binary", it) }.flatten() + linkerFlags
OS.MacOS -> mutableListOf("-linker-option", "-framework", "-linker-option", "Metal",
"-linker-option", "-framework", "-linker-option", "CoreGraphics",
"-linker-option", "-framework", "-linker-option", "CoreText",
"-linker-option", "-framework", "-linker-option", "CoreServices"
)
OS.IOS -> mutableListOf("-linker-option", "-framework", "-linker-option", "Metal",
"-linker-option", "-framework", "-linker-option", "CoreGraphics",
"-linker-option", "-framework", "-linker-option", "UIKit",
"-linker-option", "-framework", "-linker-option", "CoreText")
OS.Linux -> mutableListOf(
"-linker-option", "-L/usr/lib/x86_64-linux-gnu",
"-linker-option", "-lfontconfig",
"-linker-option", "-lGL",
// TODO: an ugly hack, Linux linker searches only unresolved symbols.
"-linker-option", "$skiaBinDir/libsksg.a",
"-linker-option", "$skiaBinDir/libskshaper.a",
"-linker-option", "$skiaBinDir/libskunicode.a",
"-linker-option", "$skiaBinDir/libskia.a"
)
else -> mutableListOf()
}
if (skiko.includeTestHelpers) {
linkerFlags.addAll(when (os) {
OS.Linux -> listOf(
"-linker-option", "-lX11",
"-linker-option", "-lGLX",
)
else -> emptyList()
})
}
freeCompilerArgs = allLibraries.map { listOf("-include-binary", it) }.flatten() + linkerFlags
} }
} }
...@@ -508,7 +514,7 @@ fun configureNativeTarget(os: OS, arch: Arch, target: KotlinNativeTarget) { ...@@ -508,7 +514,7 @@ fun configureNativeTarget(os: OS, arch: Arch, target: KotlinNativeTarget) {
outputs.dir(outDir) outputs.dir(outDir)
} }
target.compilations.all { target.compilations.all {
compileKotlinTaskProvider.configure { compileTaskProvider.configure {
dependsOn(linkTask) dependsOn(linkTask)
} }
} }
......
...@@ -18,3 +18,5 @@ dependencies.skia.android-x64=m105-adda216f-2 ...@@ -18,3 +18,5 @@ dependencies.skia.android-x64=m105-adda216f-2
dependencies.skia.android-arm64=m105-adda216f-2 dependencies.skia.android-arm64=m105-adda216f-2
org.gradle.jvmargs=-Xmx3G -XX:MaxMetaspaceSize=512m org.gradle.jvmargs=-Xmx3G -XX:MaxMetaspaceSize=512m
kotlin.native.cacheKind.macosX64=none
kotlin.native.cacheKind.iosX64=none
...@@ -115,7 +115,10 @@ actual open class SkiaLayer { ...@@ -115,7 +115,10 @@ actual open class SkiaLayer {
override fun viewWillMoveToWindow(newWindow: NSWindow?) { override fun viewWillMoveToWindow(newWindow: NSWindow?) {
updateTrackingAreas() updateTrackingAreas()
} }
override fun updateTrackingAreas() {
@ObjCAction // override
// see https://youtrack.jetbrains.com/issue/KT-40426/Incorrect-Objective-C-extensions-importing-that-prevents-UIKit-usage#focus=Comments-27-5208687.0-0
fun updateTrackingAreas() {
trackingArea?.let { removeTrackingArea(it) } trackingArea?.let { removeTrackingArea(it) }
trackingArea = NSTrackingArea( trackingArea = NSTrackingArea(
rect = bounds, rect = bounds,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment