import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.android.library) alias(libs.plugins.sqldelight) alias(libs.plugins.metro) } kotlin { @OptIn(ExperimentalKotlinGradlePluginApi::class) compilerOptions { freeCompilerArgs.add("-Xexpect-actual-classes") } androidTarget { @OptIn(ExperimentalKotlinGradlePluginApi::class) compilerOptions { jvmTarget.set(JvmTarget.JVM_17) } } iosX64() iosArm64() iosSimulatorArm64() @OptIn(ExperimentalWasmDsl::class) wasmJs { browser() } applyDefaultHierarchyTemplate() sourceSets { commonMain.dependencies { implementation(libs.kotlinx.coroutines.core) api(libs.sqldelight.runtime) api(libs.sqldelight.coroutines.extensions) api(libs.sqldelight.async.extensions) } commonTest.dependencies { implementation(kotlin("test")) implementation(libs.kotlinx.coroutines.test) } androidMain.dependencies { implementation(libs.sqldelight.android.driver) } iosMain.dependencies { implementation(libs.sqldelight.native.driver) } wasmJsMain.dependencies { implementation(libs.sqldelight.web.worker.driver) implementation(libs.kotlinx.browser) } } } android { namespace = "app.folio.core" compileSdk = 36 defaultConfig { minSdk = 24 } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } } sqldelight { databases { create("LedgerDatabase") { packageName.set("app.folio.db") generateAsync.set(true) } } }