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

Commit 493e7ec3 authored by Jiyong Park's avatar Jiyong Park Committed by Gerrit Code Review
Browse files

Merge "Clients of PackagingBase can customize dependency tag to use"

parents 93bfe6bf 65b62244
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -45,7 +45,8 @@ type PackageModule interface {
	packagingBase() *PackagingBase

	// AddDeps adds dependencies to the `deps` modules. This should be called in DepsMutator.
	AddDeps(ctx BottomUpMutatorContext)
	// When adding the dependencies, depTag is used as the tag.
	AddDeps(ctx BottomUpMutatorContext, depTag blueprint.DependencyTag)

	// CopyDepsToZip zips the built artifacts of the dependencies into the given zip file and
	// returns zip entries in it.  This is expected to be called in GenerateAndroidBuildActions,
@@ -82,10 +83,6 @@ type PackagingProperties struct {
	Multilib packagingMultilibProperties `android:"arch_variant"`
}

type packagingDependencyTag struct{ blueprint.BaseDependencyTag }

var depTag = packagingDependencyTag{}

func InitPackageModule(p PackageModule) {
	base := p.packagingBase()
	p.AddProperties(&base.properties)
@@ -134,7 +131,7 @@ func (p *PackagingBase) getSupportedTargets(ctx BaseModuleContext) []Target {
}

// See PackageModule.AddDeps
func (p *PackagingBase) AddDeps(ctx BottomUpMutatorContext) {
func (p *PackagingBase) AddDeps(ctx BottomUpMutatorContext, depTag blueprint.DependencyTag) {
	for _, t := range p.getSupportedTargets(ctx) {
		for _, dep := range p.getDepsForArch(ctx, t.Arch.ArchType) {
			if p.IgnoreMissingDependencies && !ctx.OtherModuleExists(dep) {
+3 −1
Original line number Diff line number Diff line
@@ -17,6 +17,8 @@ package android
import (
	"reflect"
	"testing"

	"github.com/google/blueprint"
)

// Module to be packaged
@@ -61,7 +63,7 @@ func packageTestModuleFactory() Module {
}

func (m *packageTestModule) DepsMutator(ctx BottomUpMutatorContext) {
	m.AddDeps(ctx)
	m.AddDeps(ctx, struct{ blueprint.BaseDependencyTag }{})
}

func (m *packageTestModule) GenerateAndroidBuildActions(ctx ModuleContext) {
+5 −1
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@ import (
	"fmt"

	"android/soong/android"

	"github.com/google/blueprint"
)

func init() {
@@ -36,8 +38,10 @@ func filesystemFactory() android.Module {
	return module
}

var dependencyTag = struct{ blueprint.BaseDependencyTag }{}

func (f *filesystem) DepsMutator(ctx android.BottomUpMutatorContext) {
	f.AddDeps(ctx)
	f.AddDeps(ctx, dependencyTag)
}

var pctx = android.NewPackageContext("android/soong/filesystem")
+8 −0
Original line number Diff line number Diff line
@@ -694,6 +694,14 @@ type dependencyTag struct {
	proc_macro bool
}

// InstallDepNeeded returns true for rlibs, dylibs, and proc macros so that they or their transitive
// dependencies (especially C/C++ shared libs) are installed as dependencies of a rust binary.
func (d dependencyTag) InstallDepNeeded() bool {
	return d.library || d.proc_macro
}

var _ android.InstallNeededDependencyTag = dependencyTag{}

var (
	customBindgenDepTag = dependencyTag{name: "customBindgenTag"}
	rlibDepTag          = dependencyTag{name: "rlibTag", library: true}