diff -r fef46dce2812 -r 831cffa9c991 buildSrc/src/main/kotlin/AndroidJavaVersion.kt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/buildSrc/src/main/kotlin/AndroidJavaVersion.kt Fri May 08 21:33:19 2020 -0400 @@ -0,0 +1,48 @@ +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") + } + } + } +}