Add package module to sdk snapshot that contains licenses
This ensures that the LSC license tool does not attempt to add a package module to an sdk snapshot Android.bp. Bug: 181569894 Test: m nothing Change-Id: I37b66e0df56c5b9ec255f66cb4f2a066ea96a738
This commit is contained in:
parent
b0bb376efa
commit
6213170b3e
2 changed files with 33 additions and 0 deletions
|
@ -63,6 +63,12 @@ func TestSnapshotWithPackageDefaultLicense(t *testing.T) {
|
|||
checkUnversionedAndroidBpContents(`
|
||||
// This is auto-generated. DO NOT EDIT.
|
||||
|
||||
package {
|
||||
// A default list here prevents the license LSC from adding its own list which would
|
||||
// be unnecessary as every module in the sdk already has its own licenses property.
|
||||
default_applicable_licenses: ["Android-Apache-2.0"],
|
||||
}
|
||||
|
||||
java_import {
|
||||
name: "myjavalib",
|
||||
prefer: false,
|
||||
|
@ -88,6 +94,12 @@ license {
|
|||
checkVersionedAndroidBpContents(`
|
||||
// This is auto-generated. DO NOT EDIT.
|
||||
|
||||
package {
|
||||
// A default list here prevents the license LSC from adding its own list which would
|
||||
// be unnecessary as every module in the sdk already has its own licenses property.
|
||||
default_applicable_licenses: ["Android-Apache-2.0"],
|
||||
}
|
||||
|
||||
java_import {
|
||||
name: "mysdk_myjavalib@current",
|
||||
sdk_member_name: "myjavalib",
|
||||
|
|
|
@ -228,6 +228,7 @@ func (s *sdk) buildSnapshot(ctx android.ModuleContext, sdkVariants []*sdk) andro
|
|||
|
||||
allMembersByName := make(map[string]struct{})
|
||||
exportedMembersByName := make(map[string]struct{})
|
||||
hasLicenses := false
|
||||
var memberVariantDeps []sdkMemberVariantDep
|
||||
for _, sdkVariant := range sdkVariants {
|
||||
memberVariantDeps = append(memberVariantDeps, sdkVariant.memberVariantDeps...)
|
||||
|
@ -241,6 +242,10 @@ func (s *sdk) buildSnapshot(ctx android.ModuleContext, sdkVariants []*sdk) andro
|
|||
if memberVariantDep.export {
|
||||
exportedMembersByName[name] = struct{}{}
|
||||
}
|
||||
|
||||
if memberVariantDep.memberType == android.LicenseModuleSdkMemberType {
|
||||
hasLicenses = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -266,6 +271,22 @@ func (s *sdk) buildSnapshot(ctx android.ModuleContext, sdkVariants []*sdk) andro
|
|||
}
|
||||
s.builderForTests = builder
|
||||
|
||||
// If the sdk snapshot includes any license modules then add a package module which has a
|
||||
// default_applicable_licenses property. That will prevent the LSC license process from updating
|
||||
// the generated Android.bp file to add a package module that includes all licenses used by all
|
||||
// the modules in that package. That would be unnecessary as every module in the sdk should have
|
||||
// their own licenses property specified.
|
||||
if hasLicenses {
|
||||
pkg := bpFile.newModule("package")
|
||||
property := "default_applicable_licenses"
|
||||
pkg.AddCommentForProperty(property, `
|
||||
A default list here prevents the license LSC from adding its own list which would
|
||||
be unnecessary as every module in the sdk already has its own licenses property.
|
||||
`)
|
||||
pkg.AddProperty(property, []string{"Android-Apache-2.0"})
|
||||
bpFile.AddModule(pkg)
|
||||
}
|
||||
|
||||
// Group the variants for each member module together and then group the members of each member
|
||||
// type together.
|
||||
members := s.groupMemberVariantsByMemberThenType(ctx, memberVariantDeps)
|
||||
|
|
Loading…
Reference in a new issue