diff options
Diffstat (limited to 'java/app.go')
| -rwxr-xr-x | java/app.go | 15 | 
1 files changed, 12 insertions, 3 deletions
diff --git a/java/app.go b/java/app.go index c5d88e978..8ff5d91c2 100755 --- a/java/app.go +++ b/java/app.go @@ -583,6 +583,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) @@ -654,7 +664,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, "", "", @@ -663,13 +674,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 {  |