Always attach kotlin-android-extensions-runtime library

@Parcelize is now enabled by default, and it requires the runtime library.
Enabling it for all clients is a temporary solution.
In future, the runtime library will be split to two separate artifacts.
This commit is contained in:
Yan Zhulanow
2019-03-20 19:24:18 +03:00
parent 8e23555660
commit 44f752d1c5
2 changed files with 4 additions and 27 deletions
@@ -16,8 +16,6 @@
package org.jetbrains.kotlin.gradle.internal
import groovy.lang.Closure
import org.gradle.util.Configurable
import java.util.*
enum class CacheImplementation(val optionName: String) {
@@ -39,25 +37,10 @@ enum class AndroidExtensionsFeature(val featureName: String) {
}
}
open class AndroidExtensionsExtension : Configurable<AndroidExtensionsExtension> {
private lateinit var onEvaluatedHandler: (AndroidExtensionsExtension) -> Unit
fun setEvaluatedHandler(handler: (AndroidExtensionsExtension) -> Unit) {
onEvaluatedHandler = handler
}
open class AndroidExtensionsExtension {
open var isExperimental: Boolean = false
open var features: Set<String> = AndroidExtensionsFeature.values().mapTo(mutableSetOf()) { it.featureName }
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
closure.delegate = this
closure.call()
onEvaluatedHandler(this)
return this
}
}
@@ -43,18 +43,12 @@ import javax.xml.parsers.DocumentBuilderFactory
class AndroidExtensionsSubpluginIndicator @Inject internal constructor(private val registry: ToolingModelBuilderRegistry) :
Plugin<Project> {
override fun apply(project: Project) {
val extension = project.extensions.create("androidExtensions", AndroidExtensionsExtension::class.java)
extension.setEvaluatedHandler { evaluatedExtension ->
if (evaluatedExtension.isExperimental) {
addAndroidExtensionsRuntimeIfNeeded(project)
}
}
project.extensions.create("androidExtensions", AndroidExtensionsExtension::class.java)
addAndroidExtensionsRuntime(project)
registry.register(KotlinAndroidExtensionModelBuilder())
}
private fun addAndroidExtensionsRuntimeIfNeeded(project: Project) {
private fun addAndroidExtensionsRuntime(project: Project) {
val kotlinPluginVersion = project.getKotlinPluginVersion() ?: run {
project.logger.error("Kotlin plugin should be enabled before 'kotlin-android-extensions'")
return