Amritansh
02/22/2021, 6:49 PMimport org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
plugins {
id("com.android.library")
id("com.squareup.sqldelight")
kotlin("multiplatform")
id("kotlin-android-extensions")
kotlin("plugin.serialization")
id("maven-publish")
}
repositories {
gradlePluginPortal()
google()
jcenter()
mavenCentral()
}
kotlin {
android {
//<https://kotlinlang.org/docs/reference/mpp-publish-lib.html#publish-an-android-library>
publishLibraryVariants("debug", "release", "qa", "uitesting", "rc")
}
ios {
binaries {
framework {
baseName = "shared"
}
}
}
sourceSets {
with(Dependencies) {
val commonMain by getting {
dependencies {
implementation(coroutinesCore)
implementation(kotlinxSerialization)
implementation(ktorClientCore)
implementation(ktorClientSerialization)
implementation(klock)
implementation(benasherUUID)
implementation(stately)
implementation(sqlDelightCommon)
}
}
val commonTest by getting {
dependencies {
implementation(kotlin("test-common"))
implementation(kotlin("test-annotations-common"))
}
}
val androidMain by getting {
dependencies {
implementation(ktorClientAndroid)
implementation(sqlDelightAndroid)
}
}
val androidTest by getting {
dependencies {
implementation(kotlin("test-junit"))
implementation(junit)
}
}
val iosMain by getting {
dependencies {
implementation(ktorClientIos)
implementation(sqlDelightIOS)
}
}
val iosTest by getting
}
}
}
android {
compileSdkVersion(Versions.COMPILE_SDK)
sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
defaultConfig {
minSdkVersion(Versions.MIN_SDK)
targetSdkVersion(Versions.TARGET_SDK)
versionCode = 1
consumerProguardFiles.add(File("<http://proguard-rules.pro|proguard-rules.pro>"))
}
buildTypes {
getByName("release") {
isMinifyEnabled = false
}
val qa by creating
val uitesting by creating
val rc by creating
}
}
val packForXcode by tasks.creating(Sync::class) {
group = "build"
val mode = System.getenv("CONFIGURATION") ?: "DEBUG"
val sdkName = System.getenv("SDK_NAME") ?: "iphonesimulator"
val targetName = "ios" + if (sdkName.startsWith("iphoneos")) "Arm64" else "X64"
val framework = kotlin.targets.getByName<KotlinNativeTarget>(targetName).binaries.getFramework(mode)
inputs.property("mode", mode)
dependsOn(framework.linkTask)
val targetDir = File(buildDir, "xcode-frameworks")
from({ framework.outputDirectory })
into(targetDir)
}
tasks.getByName("build").dependsOn(packForXcode)
sqldelight {
database("AppDatabase") {
packageName = "com.shared.db"
}
}
}
Any suggestion what might be going wrong here?