Merge "Add package module to sdk snapshot that contains licenses" am: c8aeb00a9c am: d59e0728cf am: 3261dcee7a

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1702370

Change-Id: I68ee4d2452140107338f5300ffd9174a99858b55
This commit is contained in:
Paul Duffin 2021-05-12 15:27:26 +00:00 committed by Automerger Merge Worker
commit 67726a02b9
2 changed files with 33 additions and 0 deletions

View File

@ -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",

View File

@ -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)