diff --git a/templates-api/src/main/java/com/itsaky/androidide/templates/base/modules/android/buildGradle.kt b/templates-api/src/main/java/com/itsaky/androidide/templates/base/modules/android/buildGradle.kt index c0f07c386..cd2d39b30 100644 --- a/templates-api/src/main/java/com/itsaky/androidide/templates/base/modules/android/buildGradle.kt +++ b/templates-api/src/main/java/com/itsaky/androidide/templates/base/modules/android/buildGradle.kt @@ -17,9 +17,10 @@ package com.itsaky.androidide.templates.base.modules.android -import com.itsaky.androidide.templates.Language +import com.itsaky.androidide.templates.Language.Kotlin import com.itsaky.androidide.templates.ModuleType import com.itsaky.androidide.templates.base.AndroidModuleTemplateBuilder +import com.itsaky.androidide.templates.base.ModuleTemplateBuilder import com.itsaky.androidide.templates.base.modules.dependencies private val AndroidModuleTemplateBuilder.androidPlugin: String @@ -68,7 +69,7 @@ android { viewBinding = true } } - +${ktJvmTarget()} ${dependencies()} """ } @@ -109,13 +110,39 @@ android { viewBinding true } } - +${ktJvmTarget()} ${dependencies()} """ } +private fun ModuleTemplateBuilder.ktJvmTarget(): String { + if (data.language != Kotlin) { + return "" + } + + return if (data.useKts) ktJvmTargetKts() else ktJvmTargetGroovy() +} + +private fun ModuleTemplateBuilder.ktJvmTargetKts(): String { + return """ +tasks.withType().configureEach { + kotlinOptions.jvmTarget = "${data.versions.javaTarget}" +} +""" +} + +private fun ModuleTemplateBuilder.ktJvmTargetGroovy(): String { + return """ +tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all { + kotlinOptions { + jvmTarget = "${data.versions.javaTarget}" + } +} +""" +} + private fun AndroidModuleTemplateBuilder.ktPlugin(): String { - if (data.language != Language.Kotlin) { + if (data.language != Kotlin) { return "" } diff --git a/templates-impl/src/test/java/com/itsaky/androidide/templates/TemplateBuilderTest.kt b/templates-impl/src/test/java/com/itsaky/androidide/templates/TemplateBuilderTest.kt index 51b078e93..12646fd72 100644 --- a/templates-impl/src/test/java/com/itsaky/androidide/templates/TemplateBuilderTest.kt +++ b/templates-impl/src/test/java/com/itsaky/androidide/templates/TemplateBuilderTest.kt @@ -25,6 +25,7 @@ import com.itsaky.androidide.templates.base.modules.createMethod import com.itsaky.androidide.templates.base.util.AndroidModuleResManager import com.itsaky.androidide.templates.impl.emptyActivity.writeEmptyActivity import com.itsaky.androidide.xml.permissions.Permission +import com.itsaky.androidide.xml.permissions.Permission.INTERNET import com.squareup.javapoet.ArrayTypeName import com.squareup.javapoet.ParameterSpec import com.squareup.javapoet.TypeName @@ -132,7 +133,12 @@ class TemplateBuilderTest { fun `test empty activity template`() { val template = testTemplate { defaultAppModule { + recipe = { + manifest { + addPermission(INTERNET) + } + sources { writeEmptyActivity(this) }