diff options
author | Colin Cross <ccross@android.com> | 2019-04-19 16:25:38 -0700 |
---|---|---|
committer | Michael Bestas <mkbestas@lineageos.org> | 2019-12-11 19:03:32 +0200 |
commit | f97beb5bfc36a76c752b078cf42c7283580eb6ef (patch) | |
tree | 784248062d000f324cb740922524541c65fbdbb2 | |
parent | efcbabd6f7f9839ef69cd721d45027476540d42e (diff) | |
download | build_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.go | 2 | ||||
-rw-r--r-- | java/android_manifest.go | 15 |
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, }, }) |