Share EffectiveLicenseFiles for snapshot modules

License files must be captured with the snapshot modules. NoticeFiles
does not have the information provided by the `license` module.
Reading the `Effective_license_text`, snapshot includes the required
license files.

Bug: 190690041
Test: build
      check the NOTICE files built from snapshots
Change-Id: I96c4579b4bef484cbb39fc06c707742a02a2b90b
This commit is contained in:
Justin Yun
2021-06-29 20:34:53 +09:00
parent af60f411f8
commit 885a7dea68
3 changed files with 10 additions and 2 deletions

View File

@@ -473,6 +473,7 @@ type Module interface {
InitRc() Paths InitRc() Paths
VintfFragments() Paths VintfFragments() Paths
NoticeFiles() Paths NoticeFiles() Paths
EffectiveLicenseFiles() Paths
AddProperties(props ...interface{}) AddProperties(props ...interface{})
GetProperties() []interface{} GetProperties() []interface{}
@@ -1505,6 +1506,10 @@ func (m *ModuleBase) ExportedToMake() bool {
return m.commonProperties.NamespaceExportedToMake return m.commonProperties.NamespaceExportedToMake
} }
func (m *ModuleBase) EffectiveLicenseFiles() Paths {
return m.commonProperties.Effective_license_text
}
// computeInstallDeps finds the installed paths of all dependencies that have a dependency // computeInstallDeps finds the installed paths of all dependencies that have a dependency
// tag that is annotated as needing installation via the IsInstallDepNeeded method. // tag that is annotated as needing installation via the IsInstallDepNeeded method.
func (m *ModuleBase) computeInstallDeps(ctx ModuleContext) ([]*installPathsDepSet, []*packagingSpecsDepSet) { func (m *ModuleBase) computeInstallDeps(ctx ModuleContext) ([]*installPathsDepSet, []*packagingSpecsDepSet) {

View File

@@ -88,6 +88,9 @@ type Snapshottable interface {
// SnapshotLibrary returns true if this module is a snapshot library. // SnapshotLibrary returns true if this module is a snapshot library.
IsSnapshotLibrary() bool IsSnapshotLibrary() bool
// EffectiveLicenseFiles returns the list of License files for this module.
EffectiveLicenseFiles() android.Paths
// SnapshotRuntimeLibs returns a list of libraries needed by this module at runtime but which aren't build dependencies. // SnapshotRuntimeLibs returns a list of libraries needed by this module at runtime but which aren't build dependencies.
SnapshotRuntimeLibs() []string SnapshotRuntimeLibs() []string

View File

@@ -501,13 +501,13 @@ func (c *snapshotSingleton) GenerateBuildActions(ctx android.SingletonContext) {
headers = append(headers, m.SnapshotHeaders()...) headers = append(headers, m.SnapshotHeaders()...)
} }
if len(m.NoticeFiles()) > 0 { if len(m.EffectiveLicenseFiles()) > 0 {
noticeName := ctx.ModuleName(m) + ".txt" noticeName := ctx.ModuleName(m) + ".txt"
noticeOut := filepath.Join(noticeDir, noticeName) noticeOut := filepath.Join(noticeDir, noticeName)
// skip already copied notice file // skip already copied notice file
if !installedNotices[noticeOut] { if !installedNotices[noticeOut] {
installedNotices[noticeOut] = true installedNotices[noticeOut] = true
snapshotOutputs = append(snapshotOutputs, combineNoticesRule(ctx, m.NoticeFiles(), noticeOut)) snapshotOutputs = append(snapshotOutputs, combineNoticesRule(ctx, m.EffectiveLicenseFiles(), noticeOut))
} }
} }
}) })