aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java
diff options
context:
space:
mode:
authorGravatar Andrew Pellegrini <apell@google.com>2016-04-07 19:17:55 +0000
committerGravatar Kristina Chodorow <kchodorow@google.com>2016-04-08 14:34:39 +0000
commitd9571f0944a75fd0c52c987589e36797e7438d82 (patch)
tree7d72d8448cb8b879bccf0af780507c4163c3396b /src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java
parent8d061b85a91e70df10d2f20f81217386539560c1 (diff)
Provide ResourceShrinker with the generated R.java packages in addition to packages from manifests. This prevents resources from being removed when they have been generated into a package other than the one specified in their target's manifest.
-- MOS_MIGRATED_REVID=119294591
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java
index d51bad31be..e8a545afe1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java
@@ -175,6 +175,9 @@ public class ResourceShrinkerActionBuilder {
commandLine.addJoinExecPaths("--dependencyManifests", ":", dependencyManifests);
inputs.addAll(dependencyManifests);
+ List<String> resourcePackages = getResourcePackages(primaryResources, dependencyResources);
+ commandLine.addJoinStrings("--resourcePackages", ",", resourcePackages);
+
commandLine.addExecPath("--shrunkResourceApk", resourceApkOut);
outputs.add(resourceApkOut);
@@ -204,5 +207,15 @@ public class ResourceShrinkerActionBuilder {
}
return manifests.build();
}
+
+ private List<String> getResourcePackages(ResourceContainer primaryResources,
+ ResourceDependencies resourceDependencies) {
+ ImmutableList.Builder<String> resourcePackages = ImmutableList.builder();
+ resourcePackages.add(primaryResources.getJavaPackage());
+ for (ResourceContainer resources : resourceDependencies.getResources()) {
+ resourcePackages.add(resources.getJavaPackage());
+ }
+ return resourcePackages.build();
+ }
}