Fix getting plugin version for kotlinKaptWorkerDependencies configuration

Previously the configuration would not work for non-android projects,
because it looked only at KotlinAndroidPluginWrapper for plugin version
This commit is contained in:
Alexey Tsvetkov
2018-06-27 02:31:37 +03:00
parent 43b7ffd823
commit 9b97108db4
2 changed files with 7 additions and 9 deletions
@@ -46,7 +46,10 @@ class AndroidExtensionsSubpluginIndicator : Plugin<Project> {
} }
private fun addAndroidExtensionsRuntimeIfNeeded(project: Project) { private fun addAndroidExtensionsRuntimeIfNeeded(project: Project) {
val kotlinPluginVersion = project.getKotlinPluginVersion() ?: return val kotlinPluginVersion = project.getKotlinPluginVersion() ?: run {
project.logger.error("Kotlin plugin should be enabled before 'kotlin-android-extensions'")
return
}
project.configurations.all { configuration -> project.configurations.all { configuration ->
val name = configuration.name val name = configuration.name
@@ -26,6 +26,7 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension
import org.jetbrains.kotlin.gradle.dsl.createKotlinExtension import org.jetbrains.kotlin.gradle.dsl.createKotlinExtension
import org.jetbrains.kotlin.gradle.internal.KotlinSourceSetProviderImpl import org.jetbrains.kotlin.gradle.internal.KotlinSourceSetProviderImpl
import org.jetbrains.kotlin.gradle.tasks.* import org.jetbrains.kotlin.gradle.tasks.*
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
import java.io.FileNotFoundException import java.io.FileNotFoundException
import java.util.* import java.util.*
import javax.inject.Inject import javax.inject.Inject
@@ -82,14 +83,8 @@ open class Kotlin2JsPluginWrapper @Inject constructor(fileResolver: FileResolver
Kotlin2JsPlugin(Kotlin2JsTasksProvider(), KotlinSourceSetProviderImpl(fileResolver), kotlinPluginVersion) Kotlin2JsPlugin(Kotlin2JsTasksProvider(), KotlinSourceSetProviderImpl(fileResolver), kotlinPluginVersion)
} }
fun Project.getKotlinPluginVersion(): String? { fun Project.getKotlinPluginVersion(): String? =
val kotlinPluginWrapper = plugins.findPlugin(KotlinAndroidPluginWrapper::class.java) ?: run { plugins.asSequence().mapNotNull { (it as? KotlinBasePluginWrapper)?.kotlinPluginVersion }.firstOrNull()
project.logger.error("'kotlin-android' plugin should be enabled before 'kotlin-android-extensions'")
return null
}
return kotlinPluginWrapper.kotlinPluginVersion
}
private fun Any.loadKotlinVersionFromResource(log: Logger): String { private fun Any.loadKotlinVersionFromResource(log: Logger): String {
log.kotlinDebug("Loading version information") log.kotlinDebug("Loading version information")