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

Commit fe149222 authored by Paul Duffin's avatar Paul Duffin
Browse files

Exclude sdkMemberVersionedDepTag from visibility enforcement

The implicit dependency from an unversioned sdk member to the snapshot
versions should be excluded from visibility enforcement as it provides
no benefit and would require snapshot members to be visible to their
original source modules which would complicate visibility handling.

Also, corrects a spelling mistake in sdkMemberVersionedDepTag.

Bug: 142940300
Test: m nothing
Change-Id: Ib7ea6a3d3904d042dca0ea12f6b9196d40de970b
parent 78ac5b96
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -285,12 +285,15 @@ type dependencyTag struct {

// For dependencies from an in-development version of an SDK member to frozen versions of the same member
// e.g. libfoo -> libfoo.mysdk.11 and libfoo.mysdk.12
type sdkMemberVesionedDepTag struct {
type sdkMemberVersionedDepTag struct {
	dependencyTag
	member  string
	version string
}

// Mark this tag so dependencies that use it are excluded from visibility enforcement.
func (t sdkMemberVersionedDepTag) ExcludeFromVisibilityEnforcement() {}

// Step 1: create dependencies from an SDK module to its members.
func memberMutator(mctx android.BottomUpMutatorContext) {
	if s, ok := mctx.Module().(*sdk); ok {
@@ -337,7 +340,7 @@ func memberInterVersionMutator(mctx android.BottomUpMutatorContext) {
	if m, ok := mctx.Module().(android.SdkAware); ok && m.IsInAnySdk() {
		if !m.ContainingSdk().Unversioned() {
			memberName := m.MemberName()
			tag := sdkMemberVesionedDepTag{member: memberName, version: m.ContainingSdk().Version}
			tag := sdkMemberVersionedDepTag{member: memberName, version: m.ContainingSdk().Version}
			mctx.AddReverseDependency(mctx.Module(), tag, memberName)
		}
	}