Add watchos/tvos native targets

This commit is contained in:
Sergey Mashkov
2019-10-25 17:15:57 +03:00
parent cdc3c88831
commit 8dffe86a1b
5 changed files with 43 additions and 31 deletions

View File

@@ -52,8 +52,13 @@ kotlin {
fromPreset(presets.iosArm64, 'iosArm64')
fromPreset(presets.iosArm32, 'iosArm32')
fromPreset(presets.iosX64, 'iosX64')
fromPreset(presets.tvosArm64, 'tvosArm64')
fromPreset(presets.tvosX64, 'tvosX64')
fromPreset(presets.watchosArm32, 'watchosArm32')
fromPreset(presets.watchosArm64, 'watchosArm64')
fromPreset(presets.watchosX86, 'watchosX86')
project.ext.nativeTargets = [iosX64, iosArm64, iosArm32, macosX64, linuxX64, mingwX64]
project.ext.nativeTargets = [iosX64, iosArm64, iosArm32, macosX64, linuxX64, mingwX64, tvosArm64, tvosX64, watchosArm32, watchosArm64, watchosX86]
}
def crossCompileTargets = [linuxX64, macosX64, mingwX64]
@@ -91,11 +96,11 @@ kotlin {
posixMain { dependsOn commonMain }
if (!project.ext.ideaActive) {
configure([iosArm32Main, iosArm64Main, iosX64Main, macosX64Main, linuxX64Main, mingwX64Main]) {
configure(project.ext.nativeTargets.collect { getByName(it.name + 'Main') }) {
dependsOn posixMain
}
configure([iosArm32Test, iosArm64Test, iosX64Test, macosX64Test, linuxX64Test, mingwX64Test]) {
configure(project.ext.nativeTargets.collect { getByName(it.name + 'Test') }) {
dependsOn posixTest
}
}

View File

@@ -39,7 +39,7 @@ def isAvailableForPublication(publication) {
result = result | (name in ['jvm', 'js', 'metadata', 'kotlinMultiplatform'])
result = result | (project.ext.isLinuxHost && name == 'linuxX64')
result = result | (project.ext.isWinHost && name == 'mingwX64')
result = result | (project.ext.isMacosHost && name in ['iosX64', 'iosArm32', 'iosArm64', 'macosX64'])
result = result | (project.ext.isMacosHost && name in ['iosX64', 'iosArm32', 'iosArm64', 'macosX64', 'watchosArm32', 'watchosArm64', 'watchosX86', 'tvosArm64', 'tvosX64'])
return result
}

View File

@@ -1,13 +1,35 @@
val ideaActive: Boolean by project.extra
if (ideaActive) {
kotlin {
sourceSets {
kotlin {
sourceSets {
if (ideaActive) {
val posixIde by creating {
kotlin.srcDir("posixIde/src")
}
get("posixMain").dependsOn(posixIde)
} else {
configure(listOf(watchosArm32().compilations.get("main").defaultSourceSet)) {
kotlin.srcDir("iosArm32/src")
}
configure(
listOf(
watchosArm64().compilations.get("main").defaultSourceSet,
tvosArm64().compilations.get("main").defaultSourceSet
)
) {
kotlin.srcDir("iosArm64/src")
}
configure(
listOf(
watchosX86().compilations.get("main").defaultSourceSet,
tvosX64().compilations.get("main").defaultSourceSet
)
) {
kotlin.srcDir("iosX64")
}
}
}
}

View File

@@ -1,13 +1,6 @@
kotlin {
targets {
def current = []
if (project.ext.ideaActive) {
current = [posix]
} else {
current = [iosX64, iosArm64, iosArm32, macosX64, linuxX64, mingwX64]
}
configure(current) {
configure(project.ext.nativeTargets) {
compilations.main.cinterops {
bits { defFile = file("posix/interop/bits.def") }
sockets { defFile = file("posix/interop/sockets.def") }
@@ -18,13 +11,4 @@ kotlin {
}
}
}
// infra {
// shared {
// compilations.main.cinterops {
// bits { defFile = file("posix/interop/bits.def") }
// sockets { defFile = file("posix/interop/sockets.def") }
// }
// }
// }
}

View File

@@ -1,11 +1,12 @@
package = io.ktor.utils.io.bits.internal.utils
compilerOpts.mingw_x64 = -DM_ALLOW_UNALIGNED_ACCESS -DMINGW
compilerOpts.linux_x64 = -DM_ALLOW_UNALIGNED_ACCESS
compilerOpts.macos_x64 = -DM_ALLOW_UNALIGNED_ACCESS -DM_DARWIN
compilerOpts.ios_arm32 = -DM_DARWIN
compilerOpts.ios_arm64 = -DM_ALLOW_UNALIGNED_ACCESS -DM_DARWIN
compilerOpts.ios_x64 = -DM_ALLOW_UNALIGNED_ACCESS -DM_DARWIN
compilerOpts.android_arm64 = -DM_ALLOW_UNALIGNED_ACCESS
compilerOpts.ios = -DM_DARWIN
compilerOpts.osx = -DM_DARWIN
compilerOpts.watchos = -DM_DARWIN
compilerOpts.tvos = -DM_DARWIN
compilerOpts.mingw = -DMINGW
compilerOpts.x64 = -DM_ALLOW_UNALIGNED_ACCESS
compilerOpts.x86 = -DM_ALLOW_UNALIGNED_ACCESS
compilerOpts.arm64 = -DM_ALLOW_UNALIGNED_ACCESS
---
#ifdef M_ALLOW_UNALIGNED_ACCESS