Android Extensions: Support defaultCacheImplementation in Gradle
This commit is contained in:
+8
@@ -19,6 +19,12 @@ package org.jetbrains.kotlin.gradle.internal
|
||||
import groovy.lang.Closure
|
||||
import org.gradle.util.Configurable
|
||||
|
||||
enum class CacheImplementation(val optionName: String) {
|
||||
HASH_MAP("hashMap"),
|
||||
SPARSE_ARRAY("sparseArray"),
|
||||
NONE("none")
|
||||
}
|
||||
|
||||
open class AndroidExtensionsExtension : Configurable<AndroidExtensionsExtension> {
|
||||
private lateinit var onEvaluatedHandler: (AndroidExtensionsExtension) -> Unit
|
||||
|
||||
@@ -28,6 +34,8 @@ open class AndroidExtensionsExtension : Configurable<AndroidExtensionsExtension>
|
||||
|
||||
open var isExperimental: Boolean = false
|
||||
|
||||
open var defaultCacheImplementation: CacheImplementation = CacheImplementation.HASH_MAP
|
||||
|
||||
override fun configure(closure: Closure<*>): AndroidExtensionsExtension {
|
||||
// ConfigureUtil is not used here to prevent infinite recursion
|
||||
closure.resolveStrategy = Closure.DELEGATE_FIRST
|
||||
|
||||
+4
-1
@@ -98,7 +98,8 @@ class AndroidSubplugin : KotlinGradleSubplugin<KotlinCompile> {
|
||||
val androidExtensionsExtension = project.extensions.getByType(AndroidExtensionsExtension::class.java)
|
||||
|
||||
if (androidExtensionsExtension.isExperimental) {
|
||||
return applyExperimental(androidExtension, project, variantData, androidProjectHandler)
|
||||
return applyExperimental(androidExtension, androidExtensionsExtension,
|
||||
project, variantData, androidProjectHandler)
|
||||
}
|
||||
|
||||
val sourceSets = androidExtension.sourceSets
|
||||
@@ -131,6 +132,7 @@ class AndroidSubplugin : KotlinGradleSubplugin<KotlinCompile> {
|
||||
|
||||
private fun applyExperimental(
|
||||
androidExtension: BaseExtension,
|
||||
androidExtensionsExtension: AndroidExtensionsExtension,
|
||||
project: Project,
|
||||
variantData: Any?,
|
||||
androidProjectHandler: Any?
|
||||
@@ -141,6 +143,7 @@ class AndroidSubplugin : KotlinGradleSubplugin<KotlinCompile> {
|
||||
val pluginOptions = arrayListOf<SubpluginOption>()
|
||||
|
||||
pluginOptions += SubpluginOption("experimental", "true")
|
||||
pluginOptions += SubpluginOption("defaultCacheImplementation", androidExtensionsExtension.defaultCacheImplementation.optionName)
|
||||
|
||||
val mainSourceSet = androidExtension.sourceSets.getByName("main")
|
||||
pluginOptions += SubpluginOption("package", getApplicationPackage(project, mainSourceSet))
|
||||
|
||||
Reference in New Issue
Block a user