feat(templates): set jvmTarget for Kotlin project templates

This commit is contained in:
Akash Yadav
2023-05-13 22:59:51 +05:30
parent 7ee7647a50
commit fabd9e0cb3
2 changed files with 37 additions and 4 deletions
@@ -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<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().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 ""
}
@@ -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)
}