Revert "Build source sets hierarchy in Android projects"
This reverts commit 269410d7
The change causes errors in AS 3.2 import.
This commit is contained in:
-31
@@ -8,7 +8,6 @@ import org.jetbrains.kotlin.gradle.util.modify
|
|||||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import kotlin.test.assertEquals
|
|
||||||
|
|
||||||
|
|
||||||
class KotlinAndroidGradleIT : AbstractKotlinAndroidGradleTests(androidGradlePluginVersion = "2.3.0") {
|
class KotlinAndroidGradleIT : AbstractKotlinAndroidGradleTests(androidGradlePluginVersion = "2.3.0") {
|
||||||
@@ -23,36 +22,6 @@ class KotlinAndroid32GradleIT : KotlinAndroid3GradleIT(androidGradlePluginVersio
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testAndroidWithNewMppApp() = with(Project("new-mpp-android")) {
|
fun testAndroidWithNewMppApp() = with(Project("new-mpp-android")) {
|
||||||
build("printSourceSetDependsOnRelations") {
|
|
||||||
val dependsOnReportRegex = "(\\w+?) dependsOn \\[(.*?)]".toRegex()
|
|
||||||
val dependsOnRelations = dependsOnReportRegex
|
|
||||||
.findAll(output)
|
|
||||||
.associate { it.groupValues[1] to it.groupValues[2].split(", ").toSet() }
|
|
||||||
|
|
||||||
val expectedDependsOnRelations = listOf(
|
|
||||||
"androidLibMain" to setOf("commonMain"),
|
|
||||||
"androidLibDebug" to setOf("commonMain", "androidLibMain"), // compilation
|
|
||||||
"androidLibRelease" to setOf("commonMain", "androidLibMain"), // compilation
|
|
||||||
|
|
||||||
"androidLibTest" to setOf("commonTest"),
|
|
||||||
"androidLibTestDebug" to setOf("commonTest"),
|
|
||||||
"androidLibTestRelease" to setOf("commonTest"),
|
|
||||||
"androidLibAndroidTestDebug" to setOf("commonTest"),
|
|
||||||
"androidLibAndroidTest" to setOf("commonTest"),
|
|
||||||
"androidLibDebugAndroidTest" to setOf("commonTest", "androidLibAndroidTest", "androidLibAndroidTestDebug"), // compilation
|
|
||||||
"androidLibDebugUnitTest" to setOf("commonTest", "androidLibTest", "androidLibTestDebug"), // compilation
|
|
||||||
"androidLibReleaseUnitTest" to setOf("commonTest", "androidLibTest", "androidLibTestRelease") // compilation
|
|
||||||
)
|
|
||||||
|
|
||||||
for ((sourceSetName, expectedDependsOn) in expectedDependsOnRelations) {
|
|
||||||
assertEquals(
|
|
||||||
expectedDependsOn,
|
|
||||||
dependsOnRelations[sourceSetName],
|
|
||||||
"source set $sourceSetName should depend on $expectedDependsOn"
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
build("assemble", "compileDebugUnitTestJavaWithJavac") {
|
build("assemble", "compileDebugUnitTestJavaWithJavac") {
|
||||||
assertSuccessful()
|
assertSuccessful()
|
||||||
|
|
||||||
|
|||||||
-8
@@ -51,12 +51,4 @@ kotlin {
|
|||||||
fromPreset(presets.jvm, 'jvmLib')
|
fromPreset(presets.jvm, 'jvmLib')
|
||||||
fromPreset(presets.js, 'jsLib')
|
fromPreset(presets.js, 'jsLib')
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
task printSourceSetDependsOnRelations {
|
|
||||||
doFirst {
|
|
||||||
kotlin.sourceSets.each { sourceSet ->
|
|
||||||
println sourceSet.name + " dependsOn " + sourceSet.dependsOn.collect { it.name }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
+11
-25
@@ -730,9 +730,17 @@ abstract class AbstractAndroidProjectHandler<V>(private val kotlinConfigurationT
|
|||||||
kotlinTask.destinationDir = File(project.buildDir, "tmp/kotlin-classes/$variantDataName")
|
kotlinTask.destinationDir = File(project.buildDir, "tmp/kotlin-classes/$variantDataName")
|
||||||
kotlinTask.description = "Compiles the $variantDataName kotlin."
|
kotlinTask.description = "Compiles the $variantDataName kotlin."
|
||||||
|
|
||||||
configureSources(kotlinTask, variantData, compilation)
|
// Register the source only after the task is created, because tne task is required for that:
|
||||||
// Register the source only after the task is created and source set relations are built:
|
|
||||||
compilation.source(defaultSourceSet)
|
compilation.source(defaultSourceSet)
|
||||||
|
configureSources(kotlinTask, variantData, compilation)
|
||||||
|
|
||||||
|
// In MPPs, add the common main Kotlin sources to non-test variants, the common test sources to test variants
|
||||||
|
val commonSourceSetName = if (getTestedVariantData(variantData) == null)
|
||||||
|
KotlinSourceSet.COMMON_MAIN_SOURCE_SET_NAME else
|
||||||
|
KotlinSourceSet.COMMON_TEST_SOURCE_SET_NAME
|
||||||
|
project.kotlinExtension.sourceSets.findByName(commonSourceSetName)?.let {
|
||||||
|
compilation.source(it)
|
||||||
|
}
|
||||||
|
|
||||||
wireKotlinTasks(project, compilation, androidPlugin, androidExt, variantData, javaTask, kotlinTask)
|
wireKotlinTasks(project, compilation, androidPlugin, androidExt, variantData, javaTask, kotlinTask)
|
||||||
}
|
}
|
||||||
@@ -756,32 +764,10 @@ abstract class AbstractAndroidProjectHandler<V>(private val kotlinConfigurationT
|
|||||||
private fun configureSources(compileTask: AbstractCompile, variantData: V, compilation: KotlinCompilation?) {
|
private fun configureSources(compileTask: AbstractCompile, variantData: V, compilation: KotlinCompilation?) {
|
||||||
val logger = compileTask.project.logger
|
val logger = compileTask.project.logger
|
||||||
|
|
||||||
val commonSourceSet = compilation?.run {
|
|
||||||
target.project.kotlinExtension.sourceSets.run {
|
|
||||||
// In MPPs, add the common main Kotlin sources to dependsOn of non-test variants, the common test sources to test variants
|
|
||||||
val commonSourceSetName = if (getTestedVariantData(variantData) == null)
|
|
||||||
KotlinSourceSet.COMMON_MAIN_SOURCE_SET_NAME else
|
|
||||||
KotlinSourceSet.COMMON_TEST_SOURCE_SET_NAME
|
|
||||||
|
|
||||||
findByName(commonSourceSetName)?.also { common ->
|
|
||||||
getByName(compilation.defaultSourceSetName).dependsOn(common)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val defaultSourceSet = compilation?.run {
|
|
||||||
target.project.kotlinExtension.sourceSets.getByName(defaultSourceSetName)
|
|
||||||
}
|
|
||||||
|
|
||||||
for (provider in getSourceProviders(variantData)) {
|
for (provider in getSourceProviders(variantData)) {
|
||||||
val kotlinSourceSet = provider.getConvention(KOTLIN_DSL_NAME) as? KotlinSourceSet ?: continue
|
val kotlinSourceSet = provider.getConvention(KOTLIN_DSL_NAME) as? KotlinSourceSet ?: continue
|
||||||
if (compilation != null) {
|
if (compilation != null) {
|
||||||
if (commonSourceSet != null) {
|
compilation.source(kotlinSourceSet)
|
||||||
kotlinSourceSet.dependsOn(commonSourceSet)
|
|
||||||
}
|
|
||||||
if (kotlinSourceSet != defaultSourceSet) {
|
|
||||||
defaultSourceSet!!.dependsOn(kotlinSourceSet)
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
compileTask.source(kotlinSourceSet.kotlin)
|
compileTask.source(kotlinSourceSet.kotlin)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user