From 9293deb858c7962eb7c8cd38609ed2f18f2cd5cd Mon Sep 17 00:00:00 2001 From: PJ Date: Sun, 26 Apr 2026 14:36:51 +0700 Subject: [PATCH] fix(folio): build green on Android assemble + iOS framework link - Drop ksp/metro/navigation3 plugin aliases - not actually applied by any module in this PR (deferred follow-up). - import awaitAsOne from app.cash.sqldelight.async.coroutines for the suspend single-row reads enabled by generateAsync = true. - Drop kotlin.js.ExperimentalWasmJsInterop opt-in from common compilerOptions (it isn't valid for android/jvm targets). - :app:shared androidMain pulls in androidx.activity:activity-compose for the BackHandler actual. --- examples/folio/app/shared/build.gradle.kts | 4 +++- examples/folio/app/ui-components/build.gradle.kts | 1 - examples/folio/build.gradle.kts | 2 -- examples/folio/core/build.gradle.kts | 1 - .../kotlin/app/folio/core/data/SqlLedgerStore.kt | 1 + examples/folio/gradle/libs.versions.toml | 10 ---------- 6 files changed, 4 insertions(+), 15 deletions(-) diff --git a/examples/folio/app/shared/build.gradle.kts b/examples/folio/app/shared/build.gradle.kts index 4c1acdf..1a7be03 100644 --- a/examples/folio/app/shared/build.gradle.kts +++ b/examples/folio/app/shared/build.gradle.kts @@ -14,7 +14,6 @@ kotlin { @OptIn(ExperimentalKotlinGradlePluginApi::class) compilerOptions { freeCompilerArgs.add("-Xexpect-actual-classes") - optIn.add("kotlin.js.ExperimentalWasmJsInterop") } androidTarget { @@ -48,6 +47,9 @@ kotlin { implementation(libs.kotlinx.serialization.json) implementation(libs.lifecycle.viewmodel.compose) } + androidMain.dependencies { + implementation(libs.androidx.activity.compose) + } } } diff --git a/examples/folio/app/ui-components/build.gradle.kts b/examples/folio/app/ui-components/build.gradle.kts index 79e5c0c..558224e 100644 --- a/examples/folio/app/ui-components/build.gradle.kts +++ b/examples/folio/app/ui-components/build.gradle.kts @@ -13,7 +13,6 @@ kotlin { @OptIn(ExperimentalKotlinGradlePluginApi::class) compilerOptions { freeCompilerArgs.add("-Xexpect-actual-classes") - optIn.add("kotlin.js.ExperimentalWasmJsInterop") } androidTarget { diff --git a/examples/folio/build.gradle.kts b/examples/folio/build.gradle.kts index fc357d1..ba87bba 100644 --- a/examples/folio/build.gradle.kts +++ b/examples/folio/build.gradle.kts @@ -7,6 +7,4 @@ plugins { alias(libs.plugins.kotlin.plugin.serialization) apply false alias(libs.plugins.compose.multiplatform) apply false alias(libs.plugins.sqldelight) apply false - alias(libs.plugins.ksp) apply false - alias(libs.plugins.metro) apply false } diff --git a/examples/folio/core/build.gradle.kts b/examples/folio/core/build.gradle.kts index 6bb72e1..866c14e 100644 --- a/examples/folio/core/build.gradle.kts +++ b/examples/folio/core/build.gradle.kts @@ -12,7 +12,6 @@ kotlin { @OptIn(ExperimentalKotlinGradlePluginApi::class) compilerOptions { freeCompilerArgs.add("-Xexpect-actual-classes") - optIn.add("kotlin.js.ExperimentalWasmJsInterop") } androidTarget { diff --git a/examples/folio/core/src/commonMain/kotlin/app/folio/core/data/SqlLedgerStore.kt b/examples/folio/core/src/commonMain/kotlin/app/folio/core/data/SqlLedgerStore.kt index d508494..7f0fe4d 100644 --- a/examples/folio/core/src/commonMain/kotlin/app/folio/core/data/SqlLedgerStore.kt +++ b/examples/folio/core/src/commonMain/kotlin/app/folio/core/data/SqlLedgerStore.kt @@ -1,5 +1,6 @@ package app.folio.core.data +import app.cash.sqldelight.async.coroutines.awaitAsOne import app.cash.sqldelight.coroutines.asFlow import app.cash.sqldelight.coroutines.mapToList import app.cash.sqldelight.coroutines.mapToOneOrNull diff --git a/examples/folio/gradle/libs.versions.toml b/examples/folio/gradle/libs.versions.toml index 74e0290..0e3191f 100644 --- a/examples/folio/gradle/libs.versions.toml +++ b/examples/folio/gradle/libs.versions.toml @@ -5,9 +5,6 @@ compose-multiplatform = "1.10.3" sqldelight = "2.3.2" kotlinx-coroutines = "1.10.2" kotlinx-serialization = "1.9.0" -navigation3 = "1.1.1" -metro = "0.13.2" -ksp = "2.3.20-2.0.5" lifecycle-viewmodel-compose = "2.10.0" activity-compose = "1.13.0" @@ -22,11 +19,6 @@ sqldelight-android-driver = { module = "app.cash.sqldelight:android-driver", ver sqldelight-native-driver = { module = "app.cash.sqldelight:native-driver", version.ref = "sqldelight" } sqldelight-web-worker-driver = { module = "app.cash.sqldelight:web-worker-driver", version.ref = "sqldelight" } -navigation3-runtime = { module = "androidx.navigation3:navigation3-runtime", version.ref = "navigation3" } -navigation3-ui = { module = "androidx.navigation3:navigation3-ui", version.ref = "navigation3" } - -metro-runtime = { module = "dev.zacsweers.metro:runtime", version.ref = "metro" } - lifecycle-viewmodel-compose = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "lifecycle-viewmodel-compose" } androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "activity-compose" } @@ -40,5 +32,3 @@ kotlin-plugin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.re kotlin-plugin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } compose-multiplatform = { id = "org.jetbrains.compose", version.ref = "compose-multiplatform" } sqldelight = { id = "app.cash.sqldelight", version.ref = "sqldelight" } -ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } -metro = { id = "dev.zacsweers.metro", version.ref = "metro" }