mirror of
https://github.com/LiveFastEatTrashRaccoon/RaccoonForLemmy.git
synced 2025-02-09 01:38:44 +01:00
124 lines
3.4 KiB
Plaintext
124 lines
3.4 KiB
Plaintext
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask
|
|
|
|
plugins {
|
|
alias(libs.plugins.kotlin.multiplatform)
|
|
alias(libs.plugins.android.library)
|
|
alias(libs.plugins.sqldelight)
|
|
alias(libs.plugins.jetbrains.compose)
|
|
alias(libs.plugins.compose.compiler)
|
|
alias(libs.plugins.kotlinx.serialization)
|
|
alias(libs.plugins.kotlinx.kover)
|
|
alias(libs.plugins.ksp)
|
|
}
|
|
|
|
@OptIn(org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi::class)
|
|
kotlin {
|
|
applyDefaultHierarchyTemplate()
|
|
androidTarget {
|
|
compilerOptions {
|
|
jvmTarget.set(JvmTarget.JVM_1_8)
|
|
}
|
|
}
|
|
listOf(
|
|
iosX64(),
|
|
iosArm64(),
|
|
iosSimulatorArm64(),
|
|
).forEach {
|
|
it.binaries.framework {
|
|
baseName = "core.persistence"
|
|
isStatic = true
|
|
}
|
|
}
|
|
|
|
compilerOptions {
|
|
freeCompilerArgs.add("-Xexpect-actual-classes")
|
|
}
|
|
|
|
sourceSets {
|
|
val androidMain by getting {
|
|
dependencies {
|
|
implementation(libs.sqlcipher)
|
|
implementation(libs.sqldelight.android)
|
|
}
|
|
}
|
|
val iosMain by getting {
|
|
dependencies {
|
|
implementation(libs.sqldelight.native)
|
|
}
|
|
}
|
|
val commonMain by getting {
|
|
dependencies {
|
|
implementation(compose.runtime)
|
|
implementation(compose.foundation)
|
|
implementation(compose.material)
|
|
implementation(compose.materialIconsExtended)
|
|
implementation(libs.kotlinx.coroutines)
|
|
implementation(libs.kotlinx.serialization.json)
|
|
|
|
implementation(libs.koin.core)
|
|
api(libs.koin.annotations)
|
|
|
|
implementation(projects.core.appearance)
|
|
implementation(projects.core.l10n)
|
|
implementation(projects.core.preferences)
|
|
implementation(projects.core.utils)
|
|
}
|
|
}
|
|
val androidUnitTest by getting {
|
|
dependencies {
|
|
implementation(libs.kotlinx.coroutines.test)
|
|
implementation(kotlin("test-junit"))
|
|
implementation(libs.mockk)
|
|
implementation(projects.core.testutils)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
add("kspCommonMainMetadata", libs.koin.ksp)
|
|
add("kspAndroid", libs.koin.ksp)
|
|
add("kspIosX64", libs.koin.ksp)
|
|
add("kspIosArm64", libs.koin.ksp)
|
|
add("kspIosSimulatorArm64", libs.koin.ksp)
|
|
}
|
|
|
|
android {
|
|
namespace = "com.livefast.eattrash.raccoonforlemmy.core.persistence"
|
|
compileSdk =
|
|
libs.versions.android.compileSdk
|
|
.get()
|
|
.toInt()
|
|
defaultConfig {
|
|
minSdk =
|
|
libs.versions.android.minSdk
|
|
.get()
|
|
.toInt()
|
|
}
|
|
}
|
|
|
|
sqldelight {
|
|
databases {
|
|
create("AppDatabase") {
|
|
packageName.set("com.livefast.eattrash.raccoonforlemmy.core.persistence.entities")
|
|
srcDirs.setFrom("src/commonMain/sqldelight")
|
|
}
|
|
}
|
|
linkSqlite = true
|
|
}
|
|
|
|
ksp {
|
|
arg("KOIN_DEFAULT_MODULE", "false")
|
|
}
|
|
|
|
kotlin.sourceSets.commonMain {
|
|
kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin")
|
|
}
|
|
|
|
tasks.withType(KotlinCompilationTask::class.java).configureEach {
|
|
if (name != "kspCommonMainKotlinMetadata") {
|
|
dependsOn("kspCommonMainKotlinMetadata")
|
|
}
|
|
}
|