Revert "Revert "Build notice files from license metadata.""
This reverts commit 77807b3c27
.
Reason for revert: fix and roll forward again
Change-Id: I80c796ca81ecf29df9522babe54d684a0d11b9e6
This commit is contained in:
55
java/app.go
55
java/app.go
@@ -19,7 +19,6 @@ package java
|
||||
|
||||
import (
|
||||
"path/filepath"
|
||||
"sort"
|
||||
"strings"
|
||||
|
||||
"github.com/google/blueprint"
|
||||
@@ -164,8 +163,6 @@ type AndroidApp struct {
|
||||
|
||||
additionalAaptFlags []string
|
||||
|
||||
noticeOutputs android.NoticeOutputs
|
||||
|
||||
overriddenManifestPackageName string
|
||||
|
||||
android.ApexBundleDepsInfo
|
||||
@@ -523,53 +520,6 @@ func (a *AndroidApp) JNISymbolsInstalls(installPath string) android.RuleBuilderI
|
||||
return jniSymbols
|
||||
}
|
||||
|
||||
func (a *AndroidApp) noticeBuildActions(ctx android.ModuleContext) {
|
||||
// Collect NOTICE files from all dependencies.
|
||||
seenModules := make(map[android.Module]bool)
|
||||
noticePathSet := make(map[android.Path]bool)
|
||||
|
||||
ctx.WalkDeps(func(child android.Module, parent android.Module) bool {
|
||||
// Have we already seen this?
|
||||
if _, ok := seenModules[child]; ok {
|
||||
return false
|
||||
}
|
||||
seenModules[child] = true
|
||||
|
||||
// Skip host modules.
|
||||
if child.Target().Os.Class == android.Host {
|
||||
return false
|
||||
}
|
||||
|
||||
paths := child.(android.Module).NoticeFiles()
|
||||
if len(paths) > 0 {
|
||||
for _, path := range paths {
|
||||
noticePathSet[path] = true
|
||||
}
|
||||
}
|
||||
return true
|
||||
})
|
||||
|
||||
// If the app has one, add it too.
|
||||
if len(a.NoticeFiles()) > 0 {
|
||||
for _, path := range a.NoticeFiles() {
|
||||
noticePathSet[path] = true
|
||||
}
|
||||
}
|
||||
|
||||
if len(noticePathSet) == 0 {
|
||||
return
|
||||
}
|
||||
var noticePaths []android.Path
|
||||
for path := range noticePathSet {
|
||||
noticePaths = append(noticePaths, path)
|
||||
}
|
||||
sort.Slice(noticePaths, func(i, j int) bool {
|
||||
return noticePaths[i].String() < noticePaths[j].String()
|
||||
})
|
||||
|
||||
a.noticeOutputs = android.BuildNoticeOutput(ctx, a.installDir, a.installApkName+".apk", noticePaths)
|
||||
}
|
||||
|
||||
// Reads and prepends a main cert from the default cert dir if it hasn't been set already, i.e. it
|
||||
// isn't a cert module reference. Also checks and enforces system cert restriction if applicable.
|
||||
func processMainCert(m android.ModuleBase, certPropValue string, certificates []Certificate, ctx android.ModuleContext) []Certificate {
|
||||
@@ -636,9 +586,10 @@ func (a *AndroidApp) generateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
}
|
||||
a.onDeviceDir = android.InstallPathToOnDevicePath(ctx, a.installDir)
|
||||
|
||||
a.noticeBuildActions(ctx)
|
||||
noticeFile := android.PathForModuleOut(ctx, "NOTICE", "NOTICE.html.gz")
|
||||
android.BuildNoticeHtmlOutputFromLicenseMetadata(ctx, noticeFile)
|
||||
if Bool(a.appProperties.Embed_notices) || ctx.Config().IsEnvTrue("ALWAYS_EMBED_NOTICES") {
|
||||
a.aapt.noticeFile = a.noticeOutputs.HtmlGzOutput
|
||||
a.aapt.noticeFile = android.OptionalPathForPath(noticeFile)
|
||||
}
|
||||
|
||||
a.classLoaderContexts = a.usesLibrary.classLoaderContextForUsesLibDeps(ctx)
|
||||
|
Reference in New Issue
Block a user