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

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

Cleanup usages of Dex2oatDepTag

Creates a new deptag type for it so that it can implement the marker
interfaces that will exclude it from being added to the APEX and from
visibility enforcement. The latter is probably not an issue ATM because
the dependencies are added after visibility checks are enforced but
this code is undergoing lots of refactoring so that may change.

Bug: 177892522
Test: m nothing
Change-Id: Ibd167d557adec761a2e3eed78f4d334c40a04fb9
parent a1063c09
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -29,7 +29,6 @@ import (
	"android/soong/android"
	"android/soong/bpf"
	"android/soong/cc"
	"android/soong/dexpreopt"
	prebuilt_etc "android/soong/etc"
	"android/soong/filesystem"
	"android/soong/java"
@@ -1573,9 +1572,6 @@ func (a *apexBundle) WalkPayloadDeps(ctx android.ModuleContext, do android.Paylo
		if dt, ok := depTag.(dependencyTag); ok && !dt.payload {
			return false
		}
		if depTag == dexpreopt.Dex2oatDepTag {
			return false
		}

		ai := ctx.OtherModuleProvider(child, android.ApexInfoProvider).(android.ApexInfo)
		externalDep := !android.InList(ctx.ModuleName(), ai.InApexes)
+16 −2
Original line number Diff line number Diff line
@@ -352,9 +352,23 @@ func dex2oatModuleName(config android.Config) string {
	}
}

var Dex2oatDepTag = struct {
type dex2oatDependencyTag struct {
	blueprint.BaseDependencyTag
}{}
}

func (d dex2oatDependencyTag) ExcludeFromVisibilityEnforcement() {
}

func (d dex2oatDependencyTag) ExcludeFromApexContents() {
}

// Dex2oatDepTag represents the dependency onto the dex2oatd module. It is added to any module that
// needs dexpreopting and so it makes no sense for it to be checked for visibility or included in
// the apex.
var Dex2oatDepTag = dex2oatDependencyTag{}

var _ android.ExcludeFromVisibilityEnforcementTag = Dex2oatDepTag
var _ android.ExcludeFromApexContentsTag = Dex2oatDepTag

// RegisterToolDeps adds the necessary dependencies to binary modules for tools
// that are required later when Get(Cached)GlobalSoongConfig is called. It
+0 −4
Original line number Diff line number Diff line
@@ -96,10 +96,6 @@ func (i BootImageInfo) AndroidBootImageFilesByArchType() map[android.ArchType]an

func (b *BootImageModule) DepIsInSameApex(ctx android.BaseModuleContext, dep android.Module) bool {
	tag := ctx.OtherModuleDependencyTag(dep)
	if tag == dexpreopt.Dex2oatDepTag {
		// The dex2oat tool is only needed for building and is not required in the apex.
		return false
	}
	if android.IsMetaDependencyTag(tag) {
		// Cross-cutting metadata dependencies are metadata.
		return false