diff --git a/libraries/tools/kotlin-android-extensions/pom.xml b/libraries/tools/kotlin-android-extensions/pom.xml index 49be56a4d54..b2760c2d6c1 100644 --- a/libraries/tools/kotlin-android-extensions/pom.xml +++ b/libraries/tools/kotlin-android-extensions/pom.xml @@ -28,6 +28,12 @@ ${project.version} provided + + org.jetbrains.kotlin + kotlin-gradle-plugin + ${project.version} + provided + org.jetbrains.kotlin kotlin-gradle-plugin-api diff --git a/libraries/tools/kotlin-android-extensions/src/main/kotlin/org/jetbrains/kotlin/android/AndroidSubplugin.kt b/libraries/tools/kotlin-android-extensions/src/main/kotlin/org/jetbrains/kotlin/android/AndroidSubplugin.kt index 08ab9df7beb..7d5fa452a69 100644 --- a/libraries/tools/kotlin-android-extensions/src/main/kotlin/org/jetbrains/kotlin/android/AndroidSubplugin.kt +++ b/libraries/tools/kotlin-android-extensions/src/main/kotlin/org/jetbrains/kotlin/android/AndroidSubplugin.kt @@ -16,12 +16,13 @@ package org.jetbrains.kotlin.android -import org.jetbrains.kotlin.gradle.plugin.KotlinGradleSubplugin -import org.gradle.api.Project import com.android.build.gradle.BaseExtension import com.android.build.gradle.api.AndroidSourceSet +import org.gradle.api.Project import org.gradle.api.tasks.compile.AbstractCompile +import org.jetbrains.kotlin.gradle.plugin.KotlinGradleSubplugin import org.jetbrains.kotlin.gradle.plugin.SubpluginOption +import org.jetbrains.kotlin.gradle.plugin.android.AndroidGradleWrapper import org.w3c.dom.Document import java.io.File import javax.xml.parsers.DocumentBuilderFactory @@ -48,7 +49,7 @@ public class AndroidSubplugin : KotlinGradleSubplugin { addVariant(mainSourceSet) - val flavorSourceSets = androidExtension.productFlavors.map { sourceSets.findByName(it.name) }.filterNotNull() + val flavorSourceSets = AndroidGradleWrapper.getProductFlavorsSourceSets(androidExtension).filterNotNull() for (sourceSet in flavorSourceSets) { addVariant(sourceSet) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/android/AndroidGradleWrapper.groovy b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/android/AndroidGradleWrapper.groovy index d74ea6a739a..ce9ebc1c45a 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/android/AndroidGradleWrapper.groovy +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/android/AndroidGradleWrapper.groovy @@ -2,6 +2,7 @@ package org.jetbrains.kotlin.gradle.plugin.android import com.android.build.gradle.BaseExtension import com.android.build.gradle.BasePlugin +import com.android.build.gradle.api.AndroidSourceSet import com.android.build.gradle.api.ApkVariant import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.TestVariant @@ -67,6 +68,11 @@ class AndroidGradleWrapper { return variant.getProductFlavors().iterator().collect { it.getName() } } + @NotNull + static def List getProductFlavorsSourceSets(BaseExtension extension) { + return extension.productFlavors.iterator().collect { extension.sourceSets.findByName(it.name) } + } + @NotNull static def DefaultDomainObjectSet getTestVariants(BaseExtension extension) { if (extension.getMetaClass().getMetaMethod("getTestVariants")) {