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:
+1
-18
@@ -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
|
||||
}
|
||||
}
|
||||
+3
-9
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user