Fix overly agressive cleanup.
Xavier Ducrohet [Thu, 20 Sep 2012 01:44:06 +0000 (18:44 -0700)]
In a previous cleanup, I removed VariantConfig.firstFlavor###
but it was still used (although apparently not when building libraries?)

This fixes it in a way that will work with multi-flavor builds.

Change-Id: Id2fa4c6c831a7acc1df40f1f3a026770bdc6aa61

gradle/src/main/groovy/com/android/build/gradle/internal/ApplicationVariant.groovy
gradle/src/main/groovy/com/android/build/gradle/internal/ProductionAppVariant.groovy
gradle/src/main/groovy/com/android/build/gradle/internal/TestAppVariant.groovy

index 7c60300..f1c32f5 100644 (file)
@@ -20,6 +20,7 @@ import com.android.builder.AndroidBuilder
 import com.android.builder.VariantConfiguration
 import org.gradle.api.file.FileCollection
 import org.gradle.api.tasks.compile.Compile
+import com.android.builder.ProductFlavor
 
 /**
  * Represents something that can be packaged into an APK and installed.
@@ -67,4 +68,14 @@ public abstract class ApplicationVariant {
     abstract String getPackage()
 
     abstract AndroidBuilder createBuilder(AndroidBasePlugin androidBasePlugin)
+
+    protected String getFlavoredName(boolean capitalized) {
+        def iterator = config.flavorConfigs
+        def name = ""
+        for (ProductFlavor flavor : iterator) {
+            name = name << capitalized ? flavor.name.capitalize() : flavor.name
+        }
+
+        return name
+    }
 }
index f3e78e7..deb1637 100644 (file)
@@ -27,7 +27,7 @@ class ProductionAppVariant extends ApplicationVariant {
     ProductionAppVariant(VariantConfiguration config) {
         super(config)
         if (config.hasFlavors()) {
-            this.name = "${config.firstFlavor.name.capitalize()}${config.buildType.name.capitalize()}"
+            this.name = "${getFlavoredName(true)}${config.buildType.name.capitalize()}"
         } else {
             this.name = "${config.buildType.name.capitalize()}"
         }
@@ -35,7 +35,7 @@ class ProductionAppVariant extends ApplicationVariant {
 
     String getDescription() {
         if (config.hasFlavors()) {
-            return "${config.buildType.name.capitalize()} build for flavor ${config.firstFlavor.name.capitalize()}"
+            return "${config.buildType.name.capitalize()} build for flavor ${getFlavoredName(true)}"
         } else {
             return "${config.buildType.name.capitalize()} build"
         }
@@ -43,7 +43,7 @@ class ProductionAppVariant extends ApplicationVariant {
 
     String getDirName() {
         if (config.hasFlavors()) {
-            return "$config.firstFlavor.name/$config.buildType.name"
+            return "${getFlavoredName(false)}/$config.buildType.name"
         } else {
             return "$config.buildType.name"
         }
@@ -51,7 +51,7 @@ class ProductionAppVariant extends ApplicationVariant {
 
     String getBaseName() {
         if (config.hasFlavors()) {
-            return "$config.firstFlavor.name-$config.buildType.name"
+            return "${getFlavoredName(false)}-$config.buildType.name"
         } else {
             return "$config.buildType.name"
         }
index 2b7931e..f77998d 100644 (file)
@@ -25,7 +25,7 @@ class TestAppVariant extends ApplicationVariant {
     TestAppVariant(VariantConfiguration config) {
         super(config)
         if (config.hasFlavors()) {
-            this.name = "${config.firstFlavor.name.capitalize()}Test"
+            this.name = "${getFlavoredName(true)}Test"
         } else {
             this.name = "Test"
         }
@@ -34,7 +34,7 @@ class TestAppVariant extends ApplicationVariant {
     @Override
     String getDescription() {
         if (config.hasFlavors()) {
-            return "Test build for the ${config.firstFlavor.name.capitalize()}${config.buildType.name.capitalize()} build"
+            return "Test build for the ${getFlavoredName(true)}${config.buildType.name.capitalize()} build"
         } else {
             return "Test for the ${config.buildType.name.capitalize()} build"
         }
@@ -42,7 +42,7 @@ class TestAppVariant extends ApplicationVariant {
 
     String getDirName() {
         if (config.hasFlavors()) {
-            return "$config.firstFlavor.name/test"
+            return "${getFlavoredName(false)}/test"
         } else {
             return "test"
         }
@@ -50,7 +50,7 @@ class TestAppVariant extends ApplicationVariant {
 
     String getBaseName() {
         if (config.hasFlavors()) {
-            return "$config.firstFlavor.name-test"
+            return "${getFlavoredName(false)}-test"
         } else {
             return "test"
         }