aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2019-04-19 16:25:38 -0700
committerMichael Bestas <mkbestas@lineageos.org>2019-12-11 19:03:32 +0200
commitf97beb5bfc36a76c752b078cf42c7283580eb6ef (patch)
tree784248062d000f324cb740922524541c65fbdbb2
parentefcbabd6f7f9839ef69cd721d45027476540d42e (diff)
downloadbuild_soong-f97beb5bfc36a76c752b078cf42c7283580eb6ef.tar.gz
build_soong-f97beb5bfc36a76c752b078cf42c7283580eb6ef.tar.bz2
build_soong-f97beb5bfc36a76c752b078cf42c7283580eb6ef.zip
Pass --remove-tools-declarations to manifest merger
Manifest merger needs --remove-tools-declarations to match Gradle behavior. Bug: 112607039 Test: m checkbuild Change-Id: Id93bcaeaf03770a4acd2e1fdf44e418f55540dd3
-rw-r--r--java/aar.go2
-rw-r--r--java/android_manifest.go15
2 files changed, 13 insertions, 4 deletions
diff --git a/java/aar.go b/java/aar.go
index 1e43e529..a89c8f19 100644
--- a/java/aar.go
+++ b/java/aar.go
@@ -217,7 +217,7 @@ func (a *aapt) buildActions(ctx android.ModuleContext, sdkContext sdkContext, ex
a.transitiveManifestPaths = append(android.Paths{manifestPath}, transitiveStaticLibManifests...)
if len(transitiveStaticLibManifests) > 0 {
- a.mergedManifestFile = manifestMerger(ctx, manifestPath, transitiveStaticLibManifests)
+ a.mergedManifestFile = manifestMerger(ctx, manifestPath, transitiveStaticLibManifests, a.isLibrary)
if !a.isLibrary {
// Only use the merged manifest for applications. For libraries, the transitive closure of manifests
// will be propagated to the final application and merged there. The merged manifest for libraries is
diff --git a/java/android_manifest.go b/java/android_manifest.go
index 92a4b77b..ea7c2dd4 100644
--- a/java/android_manifest.go
+++ b/java/android_manifest.go
@@ -36,10 +36,10 @@ var manifestFixerRule = pctx.AndroidStaticRule("manifestFixer",
var manifestMergerRule = pctx.AndroidStaticRule("manifestMerger",
blueprint.RuleParams{
- Command: `${config.ManifestMergerCmd} --main $in $libs --out $out`,
+ Command: `${config.ManifestMergerCmd} $args --main $in $libs --out $out`,
CommandDeps: []string{"${config.ManifestMergerCmd}"},
},
- "libs")
+ "args", "libs")
// Uses manifest_fixer.py to inject minSdkVersion, etc. into an AndroidManifest.xml
func manifestFixer(ctx android.ModuleContext, manifest android.Path, sdkContext sdkContext,
@@ -97,7 +97,15 @@ func manifestFixer(ctx android.ModuleContext, manifest android.Path, sdkContext
return fixedManifest
}
-func manifestMerger(ctx android.ModuleContext, manifest android.Path, staticLibManifests android.Paths) android.Path {
+func manifestMerger(ctx android.ModuleContext, manifest android.Path, staticLibManifests android.Paths,
+ isLibrary bool) android.Path {
+
+ var args string
+ if !isLibrary {
+ // Follow Gradle's behavior, only pass --remove-tools-declarations when merging app manifests.
+ args = "--remove-tools-declarations"
+ }
+
mergedManifest := android.PathForModuleOut(ctx, "manifest_merger", "AndroidManifest.xml")
ctx.Build(pctx, android.BuildParams{
Rule: manifestMergerRule,
@@ -107,6 +115,7 @@ func manifestMerger(ctx android.ModuleContext, manifest android.Path, staticLibM
Output: mergedManifest,
Args: map[string]string{
"libs": android.JoinWithPrefix(staticLibManifests.Strings(), "--libs "),
+ "args": args,
},
})