aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
diff options
context:
space:
mode:
authorGravatar asteinb <asteinb@google.com>2018-08-08 11:01:16 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-08-08 11:03:17 -0700
commit8264972b4aa708710653e02da842902040ffabf7 (patch)
tree26e7b7890fefa430b19937e748a9e84a3ea57571 /src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
parentf2a07a7336445b9b427c144c95663c2f2649a307 (diff)
Remove ApplicationManifest
This class just contains methods used elsewhere; move them to appropriate places (generally AndroidManifest or StampedAndroidManifest). Also, somewhat reduce code duplication by having more stuff use the existing AndroidManifest.from() method, which automatically handles unspecified manifests and packages. RELNOTES: none PiperOrigin-RevId: 207913410
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
index 3c723466f0..5d95ce9a50 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
@@ -17,6 +17,7 @@ package com.google.devtools.build.lib.rules.android;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkState;
import static com.google.common.collect.ImmutableList.toImmutableList;
+import static com.google.devtools.build.lib.syntax.Type.STRING;
import static java.nio.charset.StandardCharsets.ISO_8859_1;
import com.google.auto.value.AutoValue;
@@ -183,15 +184,19 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
AndroidResources.validateRuleContext(ruleContext);
final AndroidDataContext dataContext = androidSemantics.makeContextForNative(ruleContext);
+ Map<String, String> manifestValues = StampedAndroidManifest.getManifestValues(ruleContext);
StampedAndroidManifest manifest =
AndroidManifest.fromAttributes(ruleContext, dataContext, androidSemantics)
.mergeWithDeps(
dataContext,
androidSemantics,
+ ruleContext,
resourceDeps,
- ApplicationManifest.getManifestValues(ruleContext),
- ApplicationManifest.useLegacyMerging(ruleContext));
+ manifestValues,
+ ruleContext.getRule().isAttrDefined("manifest_merger", STRING)
+ ? ruleContext.attributes().get("manifest_merger", STRING)
+ : null);
AndroidAaptVersion aaptVersion = AndroidAaptVersion.chooseTargetAaptVersion(ruleContext);
final ResourceApk resourceApk =
@@ -201,7 +206,7 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
manifest,
/* conditionalKeepRules = */ shouldShrinkResourceCycles(
dataContext.getAndroidConfig(), ruleContext, shrinkResources),
- ApplicationManifest.getManifestValues(ruleContext),
+ manifestValues,
aaptVersion,
AndroidResources.from(ruleContext, "resource_files"),
AndroidAssets.from(ruleContext),