Expose 'allKotlinSourceSets' in KotlinCompilation (KT-28749)

As KotlinCompilation only contains the directly added source sets in its
`kotlinSourceSets` property, we need to provide a convenient way to
collect the whole source sets hierarchy for a compilation.

We added internal `allKotlinSourceSets` some time ago, and it seems
reasonable to expose it as public API.

Issue #KT-28749 Fixed
This commit is contained in:
Sergey Igushkin
2019-01-10 23:13:42 +03:00
parent 0cf95f84cb
commit 0abd044800
3 changed files with 5 additions and 4 deletions
@@ -31,6 +31,8 @@ interface KotlinCompilation<out T : KotlinCommonOptions> : Named, HasAttributes,
val kotlinSourceSets: Set<KotlinSourceSet>
val allKotlinSourceSets: Set<KotlinSourceSet>
val defaultSourceSet: KotlinSourceSet
fun defaultSourceSet(configure: KotlinSourceSet.() -> Unit)
@@ -23,7 +23,6 @@ import org.jetbrains.kotlin.gradle.plugin.KOTLIN_JS_DSL_NAME
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
import org.jetbrains.kotlin.gradle.plugin.getConvention
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget
import org.jetbrains.kotlin.gradle.plugin.mpp.allKotlinSourceSets
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
/**
@@ -61,6 +61,9 @@ abstract class AbstractKotlinCompilation<T : KotlinCommonOptions>(
override val kotlinSourceSets: MutableSet<KotlinSourceSet> = mutableSetOf()
override val allKotlinSourceSets: Set<KotlinSourceSet>
get() = kotlinSourceSets.flatMapTo(mutableSetOf()) { it.getSourceSetHierarchy() }
override val defaultSourceSet: KotlinSourceSet
get() = target.project.kotlinExtension.sourceSets.getByName(defaultSourceSetName)
@@ -178,9 +181,6 @@ abstract class AbstractKotlinCompilation<T : KotlinCommonOptions>(
override fun toString(): String = "compilation '$compilationName' ($target)"
}
val KotlinCompilation<*>.allKotlinSourceSets: Set<KotlinSourceSet>
get() = kotlinSourceSets.flatMapTo(mutableSetOf()) { it.getSourceSetHierarchy() }
abstract class AbstractKotlinCompilationToRunnableFiles<T : KotlinCommonOptions>(
target: KotlinTarget,
name: String