summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Paul Duffin <paulduffin@google.com> 2021-05-07 01:10:01 +0100
committer Paul Duffin <paulduffin@google.com> 2021-05-11 08:38:30 +0100
commit6213170b3e493e64a241145b569560a7138df137 (patch)
treedeb6b81400f2d86e0a095f3d79a57649cd0ea0c8
parentb0bb376efae63aa0493bd241ff057b7bfabb2f91 (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.go12
-rw-r--r--sdk/update.go21
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)