The shared lightning/phoenix logic now lives in kngako/lightning-kmp-app, which publishes a single `:library` module. JitPack serves a repository's submodules under <GROUP>.<ARTIFACT>, hence the com.github.kngako.lightning-kmp-app:library coordinate. The repository is content-filtered to com.github.kngako so it is not consulted for anything else -- an unfiltered jitpack.io entry gets asked about every dependency that misses in mavenCentral, and each miss is a remote round trip. The version is a commit rather than master-SNAPSHOT. For a -SNAPSHOT version JitPack advertises a unique-snapshot maven-metadata.xml (timestamp=<sha>, buildNumber=1) while serving the files under their literal -SNAPSHOT names, so gradle derives library-<target>-master-<sha>-1 and gets a 404 on every artifact. Pinning a commit sidesteps the snapshot machinery entirely and is reproducible; it needs bumping when the fork moves. That leaves the classifier. JitPack rewrites the version inside a published .module file and drops the classifier while doing so, so both the sources and the host-specific metadata variants of each apple target come back naming library-<target>-<ver>.jar -- a file that does not exist, next to the -sources.jar and -metadata.jar that do. The klib and the aar are named without a classifier and so survive the rewrite, which is why the android compilation resolves this dependency perfectly well and only the metadata compilations fail. Every shared ios source set resolves through those, so a component metadata rule puts the -metadata classifier back. It is scoped to the two apple modules and to their metadata variant by name, so it cannot disturb the klib artifacts. Verified: :composeApp:compileCommonMainKotlinMetadata and :composeApp:compileDebugKotlinAndroid both pass. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
105 lines
7.1 KiB
TOML
105 lines
7.1 KiB
TOML
[versions]
|
|
agp = "9.1.1"
|
|
android-compileSdk = "37"
|
|
android-minSdk = "26"
|
|
android-targetSdk = "37"
|
|
androidx-activity = "1.13.0"
|
|
androidx-appcompat = "1.7.1"
|
|
androidx-core = "1.19.0"
|
|
androidx-espresso = "3.7.0"
|
|
androidx-lifecycle = "2.10.0"
|
|
androidx-testExt = "1.3.0"
|
|
coilCompose = "3.4.0"
|
|
composeHotReload = "1.1.1"
|
|
composeMultiplatform = "1.11.0"
|
|
datastorePreferences = "1.2.1"
|
|
junit = "4.13.2"
|
|
kermit = "2.1.0"
|
|
kotlin = "2.3.21"
|
|
kotlinx-coroutines = "1.11.0"
|
|
kotlinx-datetime = "0.8.0"
|
|
kotlinxSerialization = "1.11.0"
|
|
ksp = "2.3.6"
|
|
ktor = "3.5.0"
|
|
# pinned to a commit, not master-SNAPSHOT: jitpack advertises a unique-snapshot maven-metadata for
|
|
# -SNAPSHOT versions but serves the files under their literal -SNAPSHOT names, so gradle looks for
|
|
# library-<target>-master-<sha>-1.klib and gets a 404. bump this when the fork moves.
|
|
lightningKmpApp = "59cc3e3c15"
|
|
lightningKmpCore = "1.11.5"
|
|
material3 = "1.10.0-alpha05"
|
|
materialIconsCore = "1.7.3"
|
|
materialIconsExtended = "1.7.3"
|
|
navigationCompose = "2.9.2"
|
|
okhttp = "5.3.2"
|
|
okio = "3.17.0"
|
|
pagingCommon = "3.5.0"
|
|
qrose = "1.1.2"
|
|
quartz = "1.12.6"
|
|
room3 = "3.0.0-alpha06"
|
|
sqldelight = "2.3.2"
|
|
sqlite = "2.6.2"
|
|
workRuntimeKtx = "2.11.1"
|
|
|
|
[libraries]
|
|
androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "androidx-core" }
|
|
androidx-testExt-junit = { module = "androidx.test.ext:junit", version.ref = "androidx-testExt" }
|
|
androidx-espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "androidx-espresso" }
|
|
androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidx-appcompat" }
|
|
androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activity" }
|
|
androidx-datastore = { module = "androidx.datastore:datastore", version.ref = "datastorePreferences" }
|
|
androidx-datastore-preferences = { module = "androidx.datastore:datastore-preferences", version.ref = "datastorePreferences" }
|
|
androidx-paging-common = { module = "androidx.paging:paging-common", version.ref = "pagingCommon" }
|
|
androidx-paging-compose = { module = "androidx.paging:paging-compose", version.ref = "pagingCommon" }
|
|
androidx-sqlite-bundled = { module = "androidx.sqlite:sqlite-bundled", version.ref = "sqlite" }
|
|
androidx-room3-runtime = { module = "androidx.room3:room3-runtime", version.ref = "room3" }
|
|
androidx-room3-compiler = { module = "androidx.room3:room3-compiler", version.ref = "room3" }
|
|
androidx-room3-sqlite-wrapper = { module = "androidx.room3:room3-sqlite-wrapper", version.ref = "room3" }
|
|
androidx-work-runtime-ktx = { module = "androidx.work:work-runtime-ktx", version.ref = "workRuntimeKtx" }
|
|
androidx-lifecycle-viewmodelCompose = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "androidx-lifecycle" }
|
|
androidx-lifecycle-runtimeCompose = { module = "org.jetbrains.androidx.lifecycle:lifecycle-runtime-compose", version.ref = "androidx-lifecycle" }
|
|
coil-compose = { module = "io.coil-kt.coil3:coil-compose", version.ref = "coilCompose" }
|
|
coil-network-ktor3 = { module = "io.coil-kt.coil3:coil-network-ktor3", version.ref = "coilCompose" }
|
|
compose-components-resources = { module = "org.jetbrains.compose.components:components-resources", version.ref = "composeMultiplatform" }
|
|
compose-runtime = { module = "org.jetbrains.compose.runtime:runtime", version.ref = "composeMultiplatform" }
|
|
compose-foundation = { module = "org.jetbrains.compose.foundation:foundation", version.ref = "composeMultiplatform" }
|
|
compose-material3 = { module = "org.jetbrains.compose.material3:material3", version.ref = "material3" }
|
|
compose-material-icons-core = { module = "org.jetbrains.compose.material:material-icons-core", version.ref = "materialIconsCore" }
|
|
compose-material-icons-extended = { module = "org.jetbrains.compose.material:material-icons-extended", version.ref = "materialIconsExtended" }
|
|
compose-ui = { module = "org.jetbrains.compose.ui:ui", version.ref = "composeMultiplatform" }
|
|
compose-uiTooling = { module = "org.jetbrains.compose.ui:ui-tooling", version.ref = "composeMultiplatform" }
|
|
compose-uiToolingPreview = { module = "org.jetbrains.compose.ui:ui-tooling-preview", version.ref = "composeMultiplatform" }
|
|
junit = { module = "junit:junit", version.ref = "junit" }
|
|
kermit = { module = "co.touchlab:kermit", version.ref = "kermit" }
|
|
kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }
|
|
kotlin-testJunit = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "kotlin" }
|
|
kotlinx-coroutinesSwing = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-swing", version.ref = "kotlinx-coroutines" }
|
|
kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinx-datetime" }
|
|
kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerialization" }
|
|
kotlinx-serialization-cbor = { module = "org.jetbrains.kotlinx:kotlinx-serialization-cbor", version.ref = "kotlinxSerialization" }
|
|
ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" }
|
|
ktor-client-cio = { module = "io.ktor:ktor-client-cio", version.ref = "ktor" }
|
|
ktor-client-websockets = { module = "io.ktor:ktor-client-websockets", version.ref = "ktor" }
|
|
ktor-serialization-kotlinx-json = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" }
|
|
lightning-kmp-app = { module = "com.github.kngako.lightning-kmp-app:library", version.ref = "lightningKmpApp" }
|
|
lightning-kmp-core = { module = "fr.acinq.lightning:lightning-kmp-core", version.ref = "lightningKmpCore" }
|
|
navigation-compose = { module = "org.jetbrains.androidx.navigation:navigation-compose", version.ref = "navigationCompose" }
|
|
okhttp-coroutines = { group = "com.squareup.okhttp3", name = "okhttp-coroutines", version.ref = "okhttp" }
|
|
okio = { module = "com.squareup.okio:okio", version.ref = "okio" }
|
|
qrose = { module = "io.github.alexzhirkevich:qrose", version.ref = "qrose" }
|
|
sqldelight-android-driver = { module = "app.cash.sqldelight:android-driver", version.ref = "sqldelight" }
|
|
sqldelight-coroutines-extensions = { module = "app.cash.sqldelight:coroutines-extensions", version.ref = "sqldelight" }
|
|
sqldelight-native-driver = { module = "app.cash.sqldelight:native-driver", version.ref = "sqldelight" }
|
|
sqldelight-runtime = { module = "app.cash.sqldelight:runtime", version.ref = "sqldelight" }
|
|
vitorpamplona-quartz = { module = "com.vitorpamplona.quartz:quartz", version.ref = "quartz" }
|
|
|
|
[plugins]
|
|
androidApplication = { id = "com.android.application", version.ref = "agp" }
|
|
androidx-room3 = { id = "androidx.room3", version.ref = "room3" }
|
|
androidLibrary = { id = "com.android.library", version.ref = "agp" }
|
|
composeHotReload = { id = "org.jetbrains.compose.hot-reload", version.ref = "composeHotReload" }
|
|
composeMultiplatform = { id = "org.jetbrains.compose", version.ref = "composeMultiplatform" }
|
|
composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
|
|
kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
|
|
kotlinPluginSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
|
|
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
|
|
sqldelight = { id = "app.cash.sqldelight", version.ref = "sqldelight" } |