aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryOnlyRule.java
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2016-10-14 20:08:38 +0000
committerGravatar Yun Peng <pcloudy@google.com>2016-10-14 20:26:32 +0000
commit183147eef8c03304b3e3a64a0f26ad3bd4bc0a87 (patch)
tree96cba28f86a8555220291376d4085c44c02b8697 /src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryOnlyRule.java
parentf09a577fe5fb09048458d20d5addecca0ffb10f8 (diff)
Add a flag to android_binary to allow resource shrinking to be controlled on a per-target basis. This flag only affects builds that have --experimental_android_resource_shrinking enabled. This will allow us to enable and disable the feature without needing to update [] or Rapid configs and on a module by module basis inside GmsCore. It will also let us enable/disable for GmsCore modules on a team by team basis.
Tested by adding to an android_binary target and building with the resource shrinking flag enabled. -- MOS_MIGRATED_REVID=136189212
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryOnlyRule.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryOnlyRule.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryOnlyRule.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryOnlyRule.java
index f901c6c5bc..e09b2b6389 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryOnlyRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryOnlyRule.java
@@ -16,6 +16,7 @@ package com.google.devtools.build.lib.rules.android;
import static com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition.HOST;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LABEL;
+import static com.google.devtools.build.lib.packages.BuildType.TRISTATE;
import static com.google.devtools.build.lib.syntax.Type.BOOLEAN;
import static com.google.devtools.build.lib.syntax.Type.STRING;
import static com.google.devtools.build.lib.syntax.Type.STRING_DICT;
@@ -26,6 +27,7 @@ import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
import com.google.devtools.build.lib.packages.Attribute.AllowedValueSet;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType;
+import com.google.devtools.build.lib.packages.TriState;
import com.google.devtools.build.lib.rules.android.AndroidConfiguration.AndroidManifestMerger;
/**
@@ -83,6 +85,22 @@ public final class AndroidBinaryOnlyRule implements RuleDefinition {
apk to only the ones in the 'en' configuration.
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(attr("resource_configuration_filters", STRING_LIST))
+ /* <!-- #BLAZE_RULE(android_binary).ATTRIBUTE(shrink_resources) -->
+ Do resource shrinking (or not). This allows resource shrinking to be controlled on a per
+ target basis and will only be used if Android resource shrinking is enabled globally. This
+ is only supported for local resources (not android_resources).
+ <p>Possible values:
+ <ul>
+ <li><code>shrink_resources = 1</code>: Turns on Android resource shrinking</li>
+ <li><code>shrink_resources = 0</code>: Turns off Android resource shrinking</li>
+ <li><code>shrink_resources = -1</code>: Shrinking is controlled by the
+ <a href="../blaze-user-manual.html#flag--android_resource_shrinking">
+ --android_resource_shrinking</a> flag.</li>
+ </ul>
+ <!-- #END_BLAZE_RULE.ATTRIBUTE --> */
+ .add(attr("shrink_resources", TRISTATE)
+ .value(TriState.AUTO)
+ .undocumented("Android resource shrinking is still experimental"))
/* <!-- #BLAZE_RULE(android_binary).ATTRIBUTE(densities) -->
Densities to filter for when building the apk.
This will strip out raster drawable resources that would not be loaded by a device with