Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c8aeb00a authored by Paul Duffin's avatar Paul Duffin Committed by Gerrit Code Review
Browse files

Merge "Add package module to sdk snapshot that contains licenses"

parents 62fb7438 6213170b
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -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",
+21 −0
Original line number Diff line number Diff line
@@ -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)