From cc3c8652119df78d7e564f87eb52068529dab75b Mon Sep 17 00:00:00 2001 From: zaneschepke Date: Wed, 17 Jun 2026 03:31:28 -0400 Subject: [PATCH] build: migrate to jvm 21 --- .github/workflows/build-aab.yml | 4 ++-- .github/workflows/build.yml | 4 ++-- .github/workflows/pr.yml | 4 ++-- app/build.gradle.kts | 9 --------- build.gradle.kts | 13 +++++++++++++ gradle.properties | 16 ++++++---------- hevtunnel/build.gradle.kts | 7 ------- logcatter/build.gradle.kts | 8 -------- networkmonitor/build.gradle.kts | 6 ------ pinger/build.gradle.kts | 5 ----- tunnel/build.gradle.kts | 7 ------- 11 files changed, 25 insertions(+), 58 deletions(-) diff --git a/.github/workflows/build-aab.yml b/.github/workflows/build-aab.yml index bb0dfed3..20a84e47 100644 --- a/.github/workflows/build-aab.yml +++ b/.github/workflows/build-aab.yml @@ -75,11 +75,11 @@ jobs: fetch-depth: 0 submodules: recursive - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v5 with: distribution: 'temurin' - java-version: '17' + java-version: '21' cache: gradle - name: Grant execute permission for gradlew diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 15108dce..657f028c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -76,11 +76,11 @@ jobs: with: fetch-depth: 0 submodules: recursive - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v5 with: distribution: 'temurin' - java-version: '17' + java-version: '21' cache: gradle - name: Grant execute permission for gradlew run: chmod +x gradlew diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 53b038b1..99b751b6 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -11,11 +11,11 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v5 with: distribution: 'temurin' - java-version: '17' + java-version: '21' cache: gradle - name: Grant execute permission for gradlew diff --git a/app/build.gradle.kts b/app/build.gradle.kts index aac1101e..afe8607e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -23,13 +23,6 @@ licensee { ignoreDependencies("com.github.topjohnwu.libsu") } -kotlin { - compilerOptions { - jvmTarget = JvmTarget.JVM_17 - freeCompilerArgs = listOf("-XXLanguage:+PropertyParamAnnotationDefaultTargetMode") - } -} - configure { namespace = Constants.APP_ID compileSdk = Constants.TARGET_SDK @@ -134,8 +127,6 @@ configure { compileOptions { isCoreLibraryDesugaringEnabled = true - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 } buildFeatures { diff --git a/build.gradle.kts b/build.gradle.kts index 9e627fce..fc65eb44 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,4 +1,5 @@ import com.ncorti.ktfmt.gradle.tasks.KtfmtFormatTask +import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { alias(libs.plugins.android.application) apply false @@ -16,6 +17,18 @@ subprojects { plugin(rootProject.libs.plugins.ktfmt.get().pluginId) } + plugins.withId("org.jetbrains.kotlin.android") { + extensions.configure { + jvmToolchain(21) + } + } + + plugins.withId("org.jetbrains.kotlin.jvm") { + extensions.configure { + jvmToolchain(21) + } + } + tasks.register("format") { description = "Format Kotlin code style deviations." source = project.fileTree(rootDir) diff --git a/gradle.properties b/gradle.properties index e756036b..463f2a56 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,21 +7,17 @@ # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. org.gradle.jvmargs=-Xmx12g -XX:MaxMetaspaceSize=4g -XX:+HeapDumpOnOutOfMemoryError -# When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true +org.gradle.parallel=true +org.gradle.caching=true +org.gradle.configuration-cache=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official # AndroidX package structure to make it clearer which packages are bundled with the # Android operating system, and which are packaged with your app's APK # https://developer.android.com/topic/libraries/support-library/androidx-rn android.useAndroidX=true -# Kotlin code style for this project: "official" or "obsolete": -kotlin.code.style=official # Enables namespacing of each library's R class so that its R class includes only the # resources declared in the library itself and none from the library's dependencies, # thereby reducing the size of the R class for that library android.nonTransitiveRClass=true -android.uniquePackageNames=false -android.dependency.useConstraints=true -android.r8.strictFullModeForKeepRules=false -android.generateSyncIssueWhenLibraryConstraintsAreEnabled=false +ksp.incremental=true \ No newline at end of file diff --git a/hevtunnel/build.gradle.kts b/hevtunnel/build.gradle.kts index 296ebf95..e2ad3287 100644 --- a/hevtunnel/build.gradle.kts +++ b/hevtunnel/build.gradle.kts @@ -50,13 +50,6 @@ android { path = file("src/main/jni/Android.mk") } } - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - - kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_17 } } } dependencies { diff --git a/logcatter/build.gradle.kts b/logcatter/build.gradle.kts index 83363cbf..b4627faa 100644 --- a/logcatter/build.gradle.kts +++ b/logcatter/build.gradle.kts @@ -1,5 +1,3 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget - plugins { alias(libs.plugins.androidLibrary) } @@ -26,12 +24,6 @@ android { create(Constants.NIGHTLY) { initWith(getByName(Constants.RELEASE)) } } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - - kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_17 } } } dependencies { diff --git a/networkmonitor/build.gradle.kts b/networkmonitor/build.gradle.kts index 9e9f2ed4..f604b7d3 100644 --- a/networkmonitor/build.gradle.kts +++ b/networkmonitor/build.gradle.kts @@ -26,12 +26,6 @@ android { create(Constants.NIGHTLY) { initWith(getByName(Constants.RELEASE)) } } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - - kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_17 } } } dependencies { diff --git a/pinger/build.gradle.kts b/pinger/build.gradle.kts index 187551e2..780912df 100644 --- a/pinger/build.gradle.kts +++ b/pinger/build.gradle.kts @@ -4,11 +4,6 @@ plugins { id("java-library") alias(libs.plugins.jetbrains.kotlin.jvm) } -java { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 -} -kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_17 } } dependencies { implementation(libs.kotlinx.coroutines.android) diff --git a/tunnel/build.gradle.kts b/tunnel/build.gradle.kts index 76d7d451..ee21319d 100644 --- a/tunnel/build.gradle.kts +++ b/tunnel/build.gradle.kts @@ -55,13 +55,6 @@ android { } create(Constants.NIGHTLY) { initWith(getByName(Constants.RELEASE)) } } - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - - kotlin { compilerOptions { jvmTarget = JvmTarget.JVM_17 } } } dependencies {