aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java38
1 files changed, 13 insertions, 25 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
index f63ec0de8b..678a5f67cd 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
@@ -230,12 +230,23 @@ public class AndroidConfiguration extends BuildConfiguration.Fragment {
throws RuleErrorException {
if (ruleContext.isLegalFragment(AndroidConfiguration.class)) {
boolean hasAapt2 = AndroidSdkProvider.fromRuleContext(ruleContext).getAapt2() != null;
+ AndroidAaptVersion flag =
+ ruleContext.getFragment(AndroidConfiguration.class).getAndroidAaptVersion();
if (ruleContext.getRule().isAttrDefined("aapt_version", STRING)) {
// On rules that can choose a version, test attribute then flag choose the aapt version
// target.
- return chooseTargetAaptVersion(
- ruleContext, ruleContext.attributes().get("aapt_version", STRING));
+ AndroidAaptVersion version =
+ fromString(ruleContext.attributes().get("aapt_version", STRING));
+ // version is null if the value is "auto"
+ version = version == AndroidAaptVersion.AUTO ? flag : version;
+
+ if (version == AAPT2 && !hasAapt2) {
+ ruleContext.throwWithRuleError(
+ "aapt2 processing requested but not available on the android_sdk");
+ return null;
+ }
+ return version == AndroidAaptVersion.AUTO ? AAPT : version;
} else {
// On rules can't choose, assume aapt2 if aapt2 is present in the sdk.
return hasAapt2 ? AAPT2 : AAPT;
@@ -243,29 +254,6 @@ public class AndroidConfiguration extends BuildConfiguration.Fragment {
}
return null;
}
-
- @Nullable
- public static AndroidAaptVersion chooseTargetAaptVersion(
- RuleContext ruleContext, @Nullable String versionString) throws RuleErrorException {
-
- if (ruleContext.isLegalFragment(AndroidConfiguration.class)) {
- boolean hasAapt2 = AndroidSdkProvider.fromRuleContext(ruleContext).getAapt2() != null;
- AndroidAaptVersion flag =
- ruleContext.getFragment(AndroidConfiguration.class).getAndroidAaptVersion();
-
- AndroidAaptVersion version = fromString(versionString);
- // version is null if the value is "auto"
- version = version == AndroidAaptVersion.AUTO ? flag : version;
-
- if (version == AAPT2 && !hasAapt2) {
- ruleContext.throwWithRuleError(
- "aapt2 processing requested but not available on the android_sdk");
- return null;
- }
- return version == AndroidAaptVersion.AUTO ? AAPT : version;
- }
- return null;
- }
}
/** Android configuration options. */