diff options
author | 2018-08-08 11:01:16 -0700 | |
---|---|---|
committer | 2018-08-08 11:03:17 -0700 | |
commit | 8264972b4aa708710653e02da842902040ffabf7 (patch) | |
tree | 26e7b7890fefa430b19937e748a9e84a3ea57571 /src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java | |
parent | f2a07a7336445b9b427c144c95663c2f2649a307 (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.java | 11 |
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), |