Merge "Use a closure to setup proguard's config files." into idea133-milestone
diff --git a/build-system/builder/src/main/java/com/android/builder/core/VariantConfiguration.java b/build-system/builder/src/main/java/com/android/builder/core/VariantConfiguration.java
index a3cd228..d3da9d9 100644
--- a/build-system/builder/src/main/java/com/android/builder/core/VariantConfiguration.java
+++ b/build-system/builder/src/main/java/com/android/builder/core/VariantConfiguration.java
@@ -1641,8 +1641,8 @@
* @return a non null list of proguard files.
*/
@NonNull
- public List<Object> getProguardFiles(boolean includeLibraries) {
- List<Object> fullList = Lists.newArrayList();
+ public List<File> getProguardFiles(boolean includeLibraries) {
+ List<File> fullList = Lists.newArrayList();
// add the config files from the build type, main config and flavors
fullList.addAll(mDefaultConfig.getProguardFiles());
diff --git a/build-system/gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy b/build-system/gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy
index a1b9fbc..a912fa1 100755
--- a/build-system/gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy
+++ b/build-system/gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy
@@ -2220,12 +2220,12 @@
*/
@NonNull
public File createProguardTasks(
- @NonNull BaseVariantData<? extends BaseVariantOutputData> variantData,
- @Nullable BaseVariantData<? extends BaseVariantOutputData> testedVariantData) {
- VariantConfiguration variantConfig = variantData.variantConfiguration
+ final @NonNull BaseVariantData<? extends BaseVariantOutputData> variantData,
+ final @Nullable BaseVariantData<? extends BaseVariantOutputData> testedVariantData) {
+ final VariantConfiguration variantConfig = variantData.variantConfiguration
// use single output for now.
- BaseVariantOutputData variantOutputData = variantData.outputs.get(0)
+ final BaseVariantOutputData variantOutputData = variantData.outputs.get(0)
def proguardTask = project.tasks.create(
"proguard${variantData.variantConfiguration.fullName.capitalize()}",
@@ -2252,8 +2252,6 @@
// --- Proguard Config ---
if (testedVariantData != null) {
- // use single output for now.
- BaseVariantOutputData testedVariantOutputData = testedVariantData.outputs.get(0)
// don't remove any code in tested app
proguardTask.dontshrink()
@@ -2264,24 +2262,21 @@
// input the mapping from the tested app so that we can deal with obfuscated code
proguardTask.applymapping("${project.buildDir}/${FD_OUTPUTS}/proguard/${testedVariantData.variantConfiguration.dirName}/mapping.txt")
+ }
+ Closure configFiles = {
+ List<File> proguardFiles = variantConfig.getProguardFiles(true /*includeLibs*/)
+ proguardFiles.add(variantOutputData.processResourcesTask.proguardOutputFile)
// for tested app, we only care about their aapt config since the base
// configs are the same files anyway.
- proguardTask.configuration(testedVariantOutputData.processResourcesTask.proguardOutputFile)
- }
-
- // all the config files coming from build type, product flavors, as well as aars
- // We need to do this in doFirst, as we need to make sure that the files are there
- // before we call proguard
- proguardTask.doFirst {
- List<Object> proguardFiles = variantConfig.getProguardFiles(true /*includeLibs*/)
- for (Object proguardFile : proguardFiles) {
- proguardTask.configuration(proguardFile)
+ if (testedVariantData != null) {
+ // use single output for now.
+ proguardFiles.add(testedVariantData.outputs.get(0).processResourcesTask.proguardOutputFile)
}
- }
- // also the config file output by aapt
- proguardTask.configuration(variantOutputData.processResourcesTask.proguardOutputFile)
+ return proguardFiles
+ }
+ proguardTask.configuration(configFiles)
// --- InJars / LibraryJars ---