From 8264972b4aa708710653e02da842902040ffabf7 Mon Sep 17 00:00:00 2001 From: asteinb Date: Wed, 8 Aug 2018 11:01:16 -0700 Subject: 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 --- .../devtools/build/lib/rules/android/AndroidBinary.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java') 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 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), -- cgit v1.2.3