From 7f71fedd2ac29e82ba6dde42d3104bfd1e07137a Mon Sep 17 00:00:00 2001
From: Janne Mareike Koschinski <janne@kuschku.de>
Date: Wed, 30 Aug 2023 03:44:46 +0200
Subject: [PATCH] build: properly set jdk version

---
 .gitlab-ci.yml                                      |  2 +-
 .../src/main/kotlin/AndroidLibraryConvention.kt     |  6 ++++++
 .../src/main/kotlin/KotlinAndroidConvention.kt      | 11 +++++++++++
 .../convention/src/main/kotlin/KotlinConvention.kt  | 13 +++++++++++++
 4 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index eeebd2f62..c1e94bd31 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,4 +1,4 @@
-image: "k8r.eu/justjanne/android-sdk:dfb791e9"
+image: "k8r.eu/justjanne/android-sdk:be7526df"
 
 cache:
   key: "$CI_PROJECT_NAME"
diff --git a/gradle/convention/src/main/kotlin/AndroidLibraryConvention.kt b/gradle/convention/src/main/kotlin/AndroidLibraryConvention.kt
index c048de784..d5ffa5464 100644
--- a/gradle/convention/src/main/kotlin/AndroidLibraryConvention.kt
+++ b/gradle/convention/src/main/kotlin/AndroidLibraryConvention.kt
@@ -1,3 +1,4 @@
+import org.gradle.api.JavaVersion
 import com.android.build.api.dsl.LibraryExtension
 import org.gradle.api.Plugin
 import org.gradle.api.Project
@@ -24,6 +25,11 @@ class AndroidLibraryConvention : Plugin<Project> {
           testInstrumentationRunnerArguments["disableAnalytics"] = "true"
         }
 
+        compileOptions {
+          sourceCompatibility = JavaVersion.VERSION_11
+          targetCompatibility = JavaVersion.VERSION_11
+        }
+
         lint {
           warningsAsErrors = true
           lintConfig = file("../lint.xml")
diff --git a/gradle/convention/src/main/kotlin/KotlinAndroidConvention.kt b/gradle/convention/src/main/kotlin/KotlinAndroidConvention.kt
index 97df14e91..14fe66759 100644
--- a/gradle/convention/src/main/kotlin/KotlinAndroidConvention.kt
+++ b/gradle/convention/src/main/kotlin/KotlinAndroidConvention.kt
@@ -4,10 +4,13 @@ import org.gradle.api.Project
 import org.gradle.api.plugins.JavaPluginExtension
 import org.gradle.api.tasks.testing.Test
 import org.gradle.jvm.toolchain.JavaLanguageVersion
+import org.gradle.jvm.toolchain.JavaToolchainService
 import org.gradle.kotlin.dsl.configure
+import org.gradle.kotlin.dsl.getByType
 import org.gradle.kotlin.dsl.provideDelegate
 import org.gradle.kotlin.dsl.withType
 import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
+import org.jetbrains.kotlin.gradle.tasks.UsesKotlinJavaToolchain
 
 class KotlinAndroidConvention : Plugin<Project> {
   override fun apply(target: Project) {
@@ -18,6 +21,14 @@ class KotlinAndroidConvention : Plugin<Project> {
         apply("com.google.devtools.ksp")
       }
 
+      val service = project.extensions.getByType<JavaToolchainService>()
+      val customLauncher = service.launcherFor {
+        languageVersion.set(JavaLanguageVersion.of(17))
+      }
+      tasks.withType<UsesKotlinJavaToolchain>().configureEach {
+        kotlinJavaToolchain.toolchain.use(customLauncher)
+      }
+
       // Use withType to workaround https://youtrack.jetbrains.com/issue/KT-55947
       tasks.withType<KotlinCompile>().configureEach {
         kotlinOptions {
diff --git a/gradle/convention/src/main/kotlin/KotlinConvention.kt b/gradle/convention/src/main/kotlin/KotlinConvention.kt
index 45cd6a0cd..33b80176b 100644
--- a/gradle/convention/src/main/kotlin/KotlinConvention.kt
+++ b/gradle/convention/src/main/kotlin/KotlinConvention.kt
@@ -4,13 +4,18 @@ import org.gradle.api.Project
 import org.gradle.api.plugins.JavaPluginExtension
 import org.gradle.api.tasks.testing.Test
 import org.gradle.jvm.toolchain.JavaLanguageVersion
+import org.gradle.jvm.toolchain.JavaToolchainService
 import org.gradle.kotlin.dsl.configure
 import org.gradle.kotlin.dsl.dependencies
+import org.gradle.kotlin.dsl.getByType
 import org.gradle.kotlin.dsl.kotlin
 import org.gradle.kotlin.dsl.provideDelegate
 import org.gradle.kotlin.dsl.withType
 import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions
+import org.jetbrains.kotlin.gradle.internal.KaptGenerateStubsTask
+import org.jetbrains.kotlin.gradle.tasks.KaptGenerateStubs
 import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
+import org.jetbrains.kotlin.gradle.tasks.UsesKotlinJavaToolchain
 
 class KotlinConvention : Plugin<Project> {
   override fun apply(target: Project) {
@@ -21,6 +26,14 @@ class KotlinConvention : Plugin<Project> {
         apply("com.google.devtools.ksp")
       }
 
+      val service = project.extensions.getByType<JavaToolchainService>()
+      val customLauncher = service.launcherFor {
+        languageVersion.set(JavaLanguageVersion.of(17))
+      }
+      tasks.withType<UsesKotlinJavaToolchain>().configureEach {
+        kotlinJavaToolchain.toolchain.use(customLauncher)
+      }
+
       // Use withType to workaround https://youtrack.jetbrains.com/issue/KT-55947
       tasks.withType<KotlinCompile>().configureEach {
         kotlinOptions {
-- 
GitLab