Merge "Clients of PackagingBase can customize dependency tag to use" am: 493e7ec3ee

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1509690

Change-Id: I5599c23a746cc0056fefe0f063faf35509228748
This commit is contained in:
Jiyong Park 2020-12-01 04:21:11 +00:00 committed by Automerger Merge Worker
commit e989d3269d
4 changed files with 19 additions and 8 deletions

View file

@ -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) {

View file

@ -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) {

View file

@ -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")

View file

@ -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}