Move embedded notice file path above aapt rule generation
The embedded notice file generation for apps was moved below the aapt rules, which meant the added asset path was ignored. Move the code to pick the notice file path selection back above the aapt rules, and leave the code to generate the notice file rule where it is. Bug: 236006463 Test: m NetworkStack ALWAYS_EMBED_NOTICES=true Change-Id: I1421fb0dbcdb759281259abfae7bddc9aecdaa56 Merged-in: I1421fb0dbcdb759281259abfae7bddc9aecdaa56
This commit is contained in:
15
java/app.go
15
java/app.go
@@ -589,6 +589,16 @@ func (a *AndroidApp) generateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
|
||||
a.classLoaderContexts = a.usesLibrary.classLoaderContextForUsesLibDeps(ctx)
|
||||
|
||||
var noticeAssetPath android.WritablePath
|
||||
if Bool(a.appProperties.Embed_notices) || ctx.Config().IsEnvTrue("ALWAYS_EMBED_NOTICES") {
|
||||
// The rule to create the notice file can't be generated yet, as the final output path
|
||||
// for the apk isn't known yet. Add the path where the notice file will be generated to the
|
||||
// aapt rules now before calling aaptBuildActions, the rule to create the notice file will
|
||||
// be generated later.
|
||||
noticeAssetPath = android.PathForModuleOut(ctx, "NOTICE", "NOTICE.html.gz")
|
||||
a.aapt.noticeFile = android.OptionalPathForPath(noticeAssetPath)
|
||||
}
|
||||
|
||||
// Process all building blocks, from AAPT to certificates.
|
||||
a.aaptBuildActions(ctx)
|
||||
|
||||
@@ -663,7 +673,8 @@ func (a *AndroidApp) generateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
a.extraOutputFiles = append(a.extraOutputFiles, v4SignatureFile)
|
||||
}
|
||||
|
||||
if Bool(a.appProperties.Embed_notices) || ctx.Config().IsEnvTrue("ALWAYS_EMBED_NOTICES") {
|
||||
if a.aapt.noticeFile.Valid() {
|
||||
// Generating the notice file rule has to be here after a.outputFile is known.
|
||||
noticeFile := android.PathForModuleOut(ctx, "NOTICE.html.gz")
|
||||
android.BuildNoticeHtmlOutputFromLicenseMetadata(
|
||||
ctx, noticeFile, "", "",
|
||||
@@ -672,13 +683,11 @@ func (a *AndroidApp) generateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
android.PathForModuleInstall(ctx).String() + "/",
|
||||
a.outputFile.String(),
|
||||
})
|
||||
noticeAssetPath := android.PathForModuleOut(ctx, "NOTICE", "NOTICE.html.gz")
|
||||
builder := android.NewRuleBuilder(pctx, ctx)
|
||||
builder.Command().Text("cp").
|
||||
Input(noticeFile).
|
||||
Output(noticeAssetPath)
|
||||
builder.Build("notice_dir", "Building notice dir")
|
||||
a.aapt.noticeFile = android.OptionalPathForPath(noticeAssetPath)
|
||||
}
|
||||
|
||||
for _, split := range a.aapt.splits {
|
||||
|
Reference in New Issue
Block a user