--- /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")
+ }
+ }
+ }
+}