package com.geekorum.build import com.android.build.gradle.BaseExtension import org.gradle.api.JavaVersion import org.gradle.api.Project import org.gradle.api.plugins.ExtensionAware import org.gradle.kotlin.dsl.dependencies import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions /** * Configure java version compile options based on minSdkVersion value */ fun BaseExtension.configureJavaVersion() { val api = defaultConfig.minSdkVersion?.apiLevel ?: 0 val version = when { api >= 24 -> JavaVersion.VERSION_1_8 api >= 19 -> JavaVersion.VERSION_1_7 else -> JavaVersion.VERSION_1_6 } compileOptions { sourceCompatibility = version targetCompatibility = version } (this as ExtensionAware).extensions.findByType(KotlinJvmOptions::class.java)?.apply { if (version >= JavaVersion.VERSION_1_8) { jvmTarget = "1.8" } } } /** * Add missing annotation processord dependencies to build on Java 11 */ fun Project.configureAnnotationProcessorDeps() { dependencies { configurations.whenObjectAdded { when (name) { "kapt" -> { add(name,"javax.xml.bind:jaxb-api:2.3.1") add(name, "com.sun.xml.bind:jaxb-core:2.3.0.1") add(name, "com.sun.xml.bind:jaxb-impl:2.3.2") } "annotationProcessor" -> add(name, "javax.xml.bind:jaxb-api:2.3.1") } } } }