Change kotlinSourceSets -> allKotlinSourceSets

This ensures that transitive SourceSets are also merged and included in
the model.
This commit is contained in:
Bradley Smith
2018-11-06 13:54:36 +00:00
committed by Sergey Igushkin
parent f426fda18b
commit 4b8f8604f2
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.gradle.plugin.KOTLIN_JS_DSL_NAME
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
import org.jetbrains.kotlin.gradle.plugin.getConvention import org.jetbrains.kotlin.gradle.plugin.getConvention
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget
import org.jetbrains.kotlin.gradle.plugin.mpp.allKotlinSourceSets
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
/** /**
@@ -102,18 +103,16 @@ class KotlinModelBuilder(private val kotlinPluginVersion: String, private val an
} }
/** /**
* The [SourceSet] returned by this method is not intended to be complete, most of the information here is exposed by the * Constructs the Android [SourceSet] that should be returned to the IDE for each compile task/variant.
* Android Gradle plugin and as such is not populated here. The important information here that is required by
* Android Studio are the [CompilerArguments].
*/ */
private fun AbstractKotlinCompile<*>.createAndroidSourceSet(androidTarget: KotlinAndroidTarget): SourceSet { private fun AbstractKotlinCompile<*>.createAndroidSourceSet(androidTarget: KotlinAndroidTarget): SourceSet {
val variantName = sourceSetName val variantName = sourceSetName
val compilation = androidTarget.compilations.getByName(variantName) val compilation = androidTarget.compilations.getByName(variantName)
// Merge all sources and resource dirs from the different Source Sets that make up this variant. // Merge all sources and resource dirs from the different Source Sets that make up this variant.
val sources = compilation.kotlinSourceSets.flatMap { val sources = compilation.allKotlinSourceSets.flatMap {
it.kotlin.srcDirs it.kotlin.srcDirs
}.distinctBy { it.absolutePath } }.distinctBy { it.absolutePath }
val resources = compilation.kotlinSourceSets.flatMap { val resources = compilation.allKotlinSourceSets.flatMap {
it.resources.srcDirs it.resources.srcDirs
}.distinctBy { it.absolutePath } }.distinctBy { it.absolutePath }
return SourceSetImpl( return SourceSetImpl(