From 9b0f8727690dba2f7e47a31d4023077c3b09b58e Mon Sep 17 00:00:00 2001 From: Natalia Ukhorskaya Date: Wed, 2 Jul 2014 14:17:50 +0400 Subject: [PATCH] Gradle plugin: unable to build project in multi flavor environment with gradle 0.11+ #KT-5348 Fixed (cherry picked from commit 09e8d0d) --- .../org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt | 4 ++-- .../gradle/plugin/android/AndroidGradleWrapper.groovy | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt b/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt index 51298809d48d8..7101162b4fb1a 100644 --- a/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt @@ -234,8 +234,8 @@ open class KotlinAndroidPlugin [Inject] (val scriptHandler: ScriptHandler): Plug javaSourceList.add(Callable{ variant.getRenderscriptCompile().getSourceOutputDir() }) if (variant is ApkVariant) { - for (flavour in variant.getProductFlavors().iterator()) { - val flavourSourceSetName = buildTypeSourceSetName + flavour.getName() + for (flavourName in AndroidGradleWrapper.getProductFlavorsNames(variant)) { + val flavourSourceSetName = buildTypeSourceSetName + flavourName val flavourSourceSet : AndroidSourceSet? = sourceSets.findByName(flavourSourceSetName) if (flavourSourceSet != null) { javaSourceList.add(AndroidGradleWrapper.getJavaSrcDirs(flavourSourceSet)) diff --git a/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/android/AndroidGradleWrapper.groovy b/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/android/AndroidGradleWrapper.groovy index 99ac1fe1e462e..da10fd1eaa680 100644 --- a/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/android/AndroidGradleWrapper.groovy +++ b/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/android/AndroidGradleWrapper.groovy @@ -1,6 +1,7 @@ package org.jetbrains.kotlin.gradle.plugin.android import com.android.build.gradle.BasePlugin +import com.android.build.gradle.api.ApkVariant import org.gradle.api.tasks.util.PatternFilterable import org.jetbrains.annotations.NotNull @@ -39,4 +40,9 @@ class AndroidGradleWrapper { static def Set getJavaSrcDirs(Object androidSourceSet) { return androidSourceSet.getJava().getSrcDirs() } + + @NotNull + static def List getProductFlavorsNames(ApkVariant variant) { + return variant.getProductFlavors().iterator().collect { it.getName() } + } }