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 {
plugins {
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
......@@ -87,4 +87,4 @@ dependencies {
tasks.withType<org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompile>().configureEach {
dependsOn(unzipTaskX64)
dependsOn(unzipTaskArm64)
}
\ No newline at end of file
}
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
kotlin("jvm") version "1.6.10"
kotlin("jvm") version "1.8.0"
application
}
......
plugins {
kotlin("multiplatform") version "1.6.10"
kotlin("multiplatform") version "1.8.0"
}
repositories {
......
......@@ -10,12 +10,12 @@ buildscript {
dependencies {
// __KOTLIN_COMPOSE_VERSION__
classpath(kotlin("gradle-plugin", version = "1.7.20"))
classpath(kotlin("gradle-plugin", version = "1.8.0"))
}
}
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"
}
......
......@@ -6,9 +6,10 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
import org.jetbrains.kotlin.gradle.tasks.KotlinCompileTool
import org.jetbrains.kotlin.konan.target.KonanTarget
plugins {
kotlin("multiplatform") version "1.7.20"
kotlin("multiplatform") version "1.8.0"
id("org.jetbrains.dokka") version "1.7.20"
`maven-publish`
signing
......@@ -439,42 +440,47 @@ fun configureNativeTarget(os: OS, arch: Arch, target: KotlinNativeTarget) {
val bridgesLibrary = "$buildDir/nativeBridges/static/$targetString/skiko-native-bridges-$targetString.a"
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 {
val skiaBinDir = "$skiaDir/out/${buildType.id}-$targetString"
this.
kotlinOptions {
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()
})
}
freeCompilerArgs = allLibraries.map { listOf("-include-binary", it) }.flatten() + linkerFlags
freeCompilerArgs += allLibraries.map { listOf("-include-binary", it) }.flatten() + linkerFlags
}
}
......@@ -508,7 +514,7 @@ fun configureNativeTarget(os: OS, arch: Arch, target: KotlinNativeTarget) {
outputs.dir(outDir)
}
target.compilations.all {
compileKotlinTaskProvider.configure {
compileTaskProvider.configure {
dependsOn(linkTask)
}
}
......
......@@ -18,3 +18,5 @@ dependencies.skia.android-x64=m105-adda216f-2
dependencies.skia.android-arm64=m105-adda216f-2
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 {
override fun viewWillMoveToWindow(newWindow: NSWindow?) {
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 = NSTrackingArea(
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