diff options
author | 2021-05-07 01:10:01 +0100 | |
---|---|---|
committer | 2021-05-11 08:38:30 +0100 | |
commit | 6213170b3e493e64a241145b569560a7138df137 (patch) | |
tree | deb6b81400f2d86e0a095f3d79a57649cd0ea0c8 | |
parent | b0bb376efae63aa0493bd241ff057b7bfabb2f91 (diff) |
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
-rw-r--r-- | sdk/license_sdk_test.go | 12 | ||||
-rw-r--r-- | sdk/update.go | 21 |
2 files changed, 33 insertions, 0 deletions
diff --git a/sdk/license_sdk_test.go b/sdk/license_sdk_test.go index 97ac6a94f..1ef6fe684 100644 --- a/sdk/license_sdk_test.go +++ b/sdk/license_sdk_test.go @@ -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", diff --git a/sdk/update.go b/sdk/update.go index deac0ec20..85dfc4acf 100644 --- a/sdk/update.go +++ b/sdk/update.go @@ -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) |