Librechat-Mobile/build-logic/convention/build.gradle.kts
Garfie 770603e466 KMP iOS migration
Complete Kotlin Multiplatform migration with iOS parity:
- All 13 modules converted to KMP (commonMain + androidMain + iosMain)
- 100% feature parity: auth, chat, SSE streaming, conversations,
  settings, agents, files, voice input, TTS, OAuth, file picker,
  clipboard paste
- Platform consolidation: DataStore path, SessionCacheCleaner,
  bubble layouts, ChatInput core, MIME types, mention parsing,
  TextField styling, FilterChip components extracted to commonMain
- iOS crash reporting via Kotlin/Native exception hook
- YAML parsing via custom pure-Kotlin parser (zero dependencies)
- Dependency health: Timber removed, kaml replaced, FuzzyWuzzy removed,
  security-crypto stabilized
- CONTRIBUTING.md
- Gradle configuration cache enabled
2026-04-02 19:54:58 -05:00

71 lines
2.4 KiB
Text

plugins {
`kotlin-dsl`
}
dependencies {
compileOnly(libs.android.gradlePlugin)
compileOnly(libs.kotlin.gradlePlugin)
compileOnly(libs.compose.gradlePlugin)
compileOnly(libs.compose.multiplatform.gradlePlugin)
compileOnly(libs.ksp.gradlePlugin)
compileOnly(libs.room.gradlePlugin)
compileOnly(libs.detekt.gradlePlugin)
compileOnly(libs.kover.gradlePlugin)
}
gradlePlugin {
plugins {
register("androidApplication") {
id = "librechat.android.application"
implementationClass = "AndroidApplicationConventionPlugin"
}
register("androidLibrary") {
id = "librechat.android.library"
implementationClass = "AndroidLibraryConventionPlugin"
}
register("androidCompose") {
id = "librechat.android.compose"
implementationClass = "AndroidComposeConventionPlugin"
}
register("androidFeature") {
id = "librechat.android.feature"
implementationClass = "AndroidFeatureConventionPlugin"
}
register("androidRoom") {
id = "librechat.android.room"
implementationClass = "AndroidRoomConventionPlugin"
}
register("androidKoin") {
id = "librechat.android.koin"
implementationClass = "AndroidKoinConventionPlugin"
}
register("kotlinSerialization") {
id = "librechat.kotlin.serialization"
implementationClass = "KotlinSerializationConventionPlugin"
}
register("androidDetekt") {
id = "librechat.android.detekt"
implementationClass = "AndroidDetektConventionPlugin"
}
register("kmpLibrary") {
id = "librechat.kmp.library"
implementationClass = "KmpLibraryConventionPlugin"
}
register("kmpCompose") {
id = "librechat.kmp.compose"
implementationClass = "KmpComposeConventionPlugin"
}
register("kmpKoin") {
id = "librechat.kmp.koin"
implementationClass = "KmpKoinConventionPlugin"
}
register("kmpRoom") {
id = "librechat.kmp.room"
implementationClass = "KmpRoomConventionPlugin"
}
register("kmpFeature") {
id = "librechat.kmp.feature"
implementationClass = "KmpFeatureConventionPlugin"
}
}
}