Skip to content

Commit 8b2efca

Browse files
committed
Android Extensions: Support defaultCacheImplementation in Gradle
1 parent 5244c5e commit 8b2efca

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/AndroidExtensionsExtension.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@ package org.jetbrains.kotlin.gradle.internal
1919
import groovy.lang.Closure
2020
import org.gradle.util.Configurable
2121

22+
enum class CacheImplementation(val optionName: String) {
23+
HASH_MAP("hashMap"),
24+
SPARSE_ARRAY("sparseArray"),
25+
NONE("none")
26+
}
27+
2228
open class AndroidExtensionsExtension : Configurable<AndroidExtensionsExtension> {
2329
private lateinit var onEvaluatedHandler: (AndroidExtensionsExtension) -> Unit
2430

@@ -28,6 +34,8 @@ open class AndroidExtensionsExtension : Configurable<AndroidExtensionsExtension>
2834

2935
open var isExperimental: Boolean = false
3036

37+
open var defaultCacheImplementation: CacheImplementation = CacheImplementation.HASH_MAP
38+
3139
override fun configure(closure: Closure<*>): AndroidExtensionsExtension {
3240
// ConfigureUtil is not used here to prevent infinite recursion
3341
closure.resolveStrategy = Closure.DELEGATE_FIRST

libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/AndroidSubplugin.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,8 @@ class AndroidSubplugin : KotlinGradleSubplugin<KotlinCompile> {
9898
val androidExtensionsExtension = project.extensions.getByType(AndroidExtensionsExtension::class.java)
9999

100100
if (androidExtensionsExtension.isExperimental) {
101-
return applyExperimental(androidExtension, project, variantData, androidProjectHandler)
101+
return applyExperimental(androidExtension, androidExtensionsExtension,
102+
project, variantData, androidProjectHandler)
102103
}
103104

104105
val sourceSets = androidExtension.sourceSets
@@ -131,6 +132,7 @@ class AndroidSubplugin : KotlinGradleSubplugin<KotlinCompile> {
131132

132133
private fun applyExperimental(
133134
androidExtension: BaseExtension,
135+
androidExtensionsExtension: AndroidExtensionsExtension,
134136
project: Project,
135137
variantData: Any?,
136138
androidProjectHandler: Any?
@@ -141,6 +143,7 @@ class AndroidSubplugin : KotlinGradleSubplugin<KotlinCompile> {
141143
val pluginOptions = arrayListOf<SubpluginOption>()
142144

143145
pluginOptions += SubpluginOption("experimental", "true")
146+
pluginOptions += SubpluginOption("defaultCacheImplementation", androidExtensionsExtension.defaultCacheImplementation)
144147

145148
val mainSourceSet = androidExtension.sourceSets.getByName("main")
146149
pluginOptions += SubpluginOption("package", getApplicationPackage(project, mainSourceSet))

0 commit comments

Comments
 (0)