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