Merge pull request #17 from garfiec/fix/jvm-toolchain-alignment

fix: use jvmToolchain(17) to align Java and Kotlin JVM targets
This commit is contained in:
Tim Abil 2026-04-06 23:58:34 -04:00 committed by GitHub
commit a014b99597
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 21 additions and 28 deletions

View file

@ -2,8 +2,7 @@ import com.android.build.api.dsl.ApplicationExtension
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.kotlin.dsl.configure
import org.gradle.kotlin.dsl.withType
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.jetbrains.kotlin.gradle.dsl.KotlinAndroidProjectExtension
class AndroidApplicationConventionPlugin : Plugin<Project> {
override fun apply(target: Project) {
@ -13,24 +12,23 @@ class AndroidApplicationConventionPlugin : Plugin<Project> {
pluginManager.apply("librechat.mobile.detekt")
pluginManager.apply("org.jetbrains.kotlinx.kover")
tasks.withType<KotlinCompile>().configureEach {
extensions.configure<KotlinAndroidProjectExtension> {
jvmToolchain(BuildConstants.JVM_TOOLCHAIN_VERSION)
compilerOptions {
freeCompilerArgs.addAll("-opt-in=kotlin.time.ExperimentalTime")
}
}
extensions.configure<ApplicationExtension> {
compileSdk = 36
compileSdk = BuildConstants.COMPILE_SDK
defaultConfig {
minSdk = 26
targetSdk = 35
minSdk = BuildConstants.MIN_SDK
targetSdk = BuildConstants.TARGET_SDK
versionCode = 1
versionName = "0.1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
compileOptions {
sourceCompatibility = org.gradle.api.JavaVersion.VERSION_17
targetCompatibility = org.gradle.api.JavaVersion.VERSION_17
isCoreLibraryDesugaringEnabled = true
}
lint {

View file

@ -2,8 +2,7 @@ import com.android.build.gradle.LibraryExtension
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.kotlin.dsl.configure
import org.gradle.kotlin.dsl.withType
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.jetbrains.kotlin.gradle.dsl.KotlinAndroidProjectExtension
class AndroidLibraryConventionPlugin : Plugin<Project> {
override fun apply(target: Project) {
@ -13,21 +12,20 @@ class AndroidLibraryConventionPlugin : Plugin<Project> {
pluginManager.apply("librechat.mobile.detekt")
pluginManager.apply("org.jetbrains.kotlinx.kover")
tasks.withType<KotlinCompile>().configureEach {
extensions.configure<KotlinAndroidProjectExtension> {
jvmToolchain(BuildConstants.JVM_TOOLCHAIN_VERSION)
compilerOptions {
freeCompilerArgs.addAll("-opt-in=kotlin.time.ExperimentalTime")
}
}
extensions.configure<LibraryExtension> {
compileSdk = 36
compileSdk = BuildConstants.COMPILE_SDK
defaultConfig {
minSdk = 26
minSdk = BuildConstants.MIN_SDK
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
compileOptions {
sourceCompatibility = org.gradle.api.JavaVersion.VERSION_17
targetCompatibility = org.gradle.api.JavaVersion.VERSION_17
isCoreLibraryDesugaringEnabled = true
}
lint {

View file

@ -0,0 +1,6 @@
object BuildConstants {
const val JVM_TOOLCHAIN_VERSION = 21
const val COMPILE_SDK = 36
const val MIN_SDK = 26
const val TARGET_SDK = 35
}

View file

@ -13,20 +13,13 @@ class KmpLibraryConventionPlugin : Plugin<Project> {
pluginManager.apply("org.jetbrains.kotlinx.kover")
extensions.configure<KotlinMultiplatformExtension> {
jvmToolchain(BuildConstants.JVM_TOOLCHAIN_VERSION)
compilerOptions {
freeCompilerArgs.addAll(
"-opt-in=kotlin.time.ExperimentalTime",
)
}
androidTarget {
compilations.configureEach {
compileTaskProvider.configure {
compilerOptions {
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17)
}
}
}
}
androidTarget()
iosArm64()
iosSimulatorArm64()
@ -41,14 +34,12 @@ class KmpLibraryConventionPlugin : Plugin<Project> {
}
extensions.configure<LibraryExtension> {
compileSdk = 36
compileSdk = BuildConstants.COMPILE_SDK
defaultConfig {
minSdk = 26
minSdk = BuildConstants.MIN_SDK
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
compileOptions {
sourceCompatibility = org.gradle.api.JavaVersion.VERSION_17
targetCompatibility = org.gradle.api.JavaVersion.VERSION_17
isCoreLibraryDesugaringEnabled = true
}
lint {