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
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user