"'apply plugin: 'kotlin-multiplatform'
apply plugin: 'kotlinx-serialization'
apply plugin: 'com.squareup.sqldelight'
kotlin {
targets {
//final def iOSTarget = System.getenv('SDK_NAME')?.startsWith("iphoneos") ? presets.iosArm64 : presets.iosX64
/*
// iPhone simulator : presets.iosX64
// real iDevice 32 bit : presets.iosArm32
// real iDevice 64 bit : presets.iosArm64
*/
//def iOSTarget = presets.iosArm64 //Device
def iOSTarget = presets.iosX64 //Simulator
fromPreset(iOSTarget, 'iOS') {
binaries {
framework('SharedCode')
}
}
fromPreset(presets.jvm, 'android')
}
sourceSets {
commonMain.dependencies {
api 'org.jetbrains.kotlin:kotlin-stdlib-common'
implementation "org.jetbrains.kotlinxkotlinx coroutines core common$coroutines_version"
implementation "org.jetbrains.kotlinxkotlinx serialization runtime common$serialization_version"
implementation "io.ktorktor client core$ktor_version"
implementation "io.ktorktor client json$ktor_version"
implementation "io.ktorktor client mock$ktor_version"
implementation "io.ktorktor client serialization$ktor_version"
implementation "com.squareup.sqldelightruntime$sqldelight_version"
implementation "co.touchlabstately0.9.3"
implementation "co.touchlabstately collections0.9.3"
implementation "com.russhwolfmultiplatform settings$multiplatformSettings"
}
androidMain.dependencies {
api 'org.jetbrains.kotlin:kotlin-stdlib'
implementation "org.jetbrains.kotlinxkotlinx coroutines core$coroutines_version"
implementation "org.jetbrains.kotlinxkotlinx serialization runtime$serialization_version"
implementation "io.ktorktor client core jvm$ktor_version"
implementation "io.ktorktor client json jvm$ktor_version"
implementation "io.ktorktor client android$ktor_version"
implementation "io.ktorktor client okhttp$ktor_version"
implementation "io.ktorktor client mock jvm$ktor_version"
implementation "io.ktorktor client serialization jvm$ktor_version"
implementation "com.squareup.sqldelightruntime jvm$sqldelight_version"
}
iOSMain.dependencies {
implementation "org.jetbrains.kotlinxkotlinx coroutines core native$coroutines_version"
implementation "org.jetbrains.kotlinxkotlinx serialization runtime native$serialization_version"
implementation "io.ktorktor client ios$ktor_version"
implementation "io.ktorktor client core native$ktor_version"
implementation "io.ktorktor client json native$ktor_version"
implementation "io.ktorktor client serialization native$ktor_version"
api "io.ktorktor client mock native$ktor_version"
implementation "com.squareup.sqldelightios driver$sqldelight_version"
}
}
}
sqldelight {
ChoreNinjaDb {
packageName = "com.erl.choreninja.db"
}
}
task packForXCode(type: Sync) {
final File frameworkDir = new File(buildDir, "xcode-frameworks")
final String mode = project.findProperty("XCODE_CONFIGURATION")?.toUpperCase() ?: 'DEBUG'
final def framework = kotlin.targets.iOS.binaries.getFramework("SharedCode", mode)
inputs.property "mode", mode
dependsOn framework.linkTask
from { framework.outputFile.parentFile }
into frameworkDir
doLast {
new File(frameworkDir, 'gradlew').with {
text = "#!/bin/bash\nexport 'JAVA_HOME=${System.getProperty("java.home")}'\ncd '${rootProject.rootDir}'\n./gradlew \$@\n"
setExecutable(true)
}
}
}
tasks.build.dependsOn packForXCode'"